正则表达式匹配${key}并在Java中使用的详细方法

2023-12-05 0 911

1.正则表达式匹配${key}

\\$\\{([a-z]+)\\} 能够匹配字符串中以${key}形式的文本(其中key为小写英文字母)

.*\\$\\{([a-z]+)\\}.* 可以用来检测文本中是否有${key}形式的文本

解释如下:

. 匹配除换行符\\n之外的任何单字符

* 匹配前面的子表达式零次或多次 要匹配*字符,请使用\\*

{ 标记限定符表达式的开始。要匹配 {,请使用 \\{

[a-z] 匹配小写字母

+匹配前面的子表达式一次或多次。要匹配+字符,请使用\\+;+限定是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

()标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \\(和 \\)

下图展示了括号的选择作用

正则表达式匹配${key}并在Java中使用的详细方法

2.在Java使用正则表达式匹配${key}

这里直接贴代码了

package test;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* @Author Song
* @Date 2021/2/26 16:55
* @Version 1.0
* @Description
*/
public class TestUtil {
/**
* 利用好其预编译功能,可以有效加快正则匹配速度
*/
public static Pattern dynamic = Pattern.compile(\”.*\\\\$\\\\{([a-z]+)\\\\}.*\”);
public static Pattern dynamicLimitCount = Pattern.compile(\”\\\\$\\\\{([a-z]+)\\\\}\”);

/**
* 判断内容中是否包含动态参数(${key}形式的)
*
* @param content 要判断的内容
* @return
*/
public static boolean isContainsDynamicParameter(String content) {
return dynamic.matcher(content).matches();
}

/**
* 按照动态内容的参数出现顺序,将参数放到List中
*
* @param content
* @return
*/
public static List<String> getKeyListByContent(String content) {
Set<String> paramSet = new LinkedHashSet<>();
Matcher m = dynamicLimitCount.matcher(content);
while (m.find()) {
paramSet.add(m.group(1));
}
return new ArrayList<>(paramSet);
}

public static void main(String[] args) {
//测试代码
String content = \”尊敬的${name}客户您好,请于${time}前到达\”;
System.out.println(isContainsDynamicParameter(content));
List<String> keyListByContent = getKeyListByContent(content);
System.out.println(\”内容中的动态参数为:\”);
keyListByContent.forEach(System.out::println);
}
}

测试代码的运行结果如图

正则表达式匹配${key}并在Java中使用的详细方法

参考

菜鸟教程-正则表达式

到此这篇关于正则表达式匹配${key}并在Java中使用的详细方法的文章就介绍到这了,更多相关正则表达式匹配${key}内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • Java正则表达式匹配字符串并提取中间值的方法实例
  • java如何用正则表达式匹配与提取字符串
  • Java正则表达式循环匹配字符串方式
  • java正则表达式匹配所有数字的案例
  • Java使用正则表达式匹配获取链接地址的方法示例
  • Java基于正则表达式实现查找匹配的文本功能【经典实例】
  • Java中的正则表达式单字符预定义字符匹配问题

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 正则表达式 正则表达式匹配${key}并在Java中使用的详细方法 https://www.u-9.cn/biancheng/zhengze/93943.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务