介绍
这篇文章将为大家详细讲解有关在Java中使用正则表达式匹配${关键}的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1。正则表达式匹配${关键}
<代码> \ $ \ {([a - z] +) \}> 代码能够匹配字符串中以${关键}形式的文本(其中主要为小写英文字母)
<代码>。美元* \ \ {([a - z] +) \}。*> 代码可以用来检测文本中是否有${关键}形式的文本
解释如下:
<代码>。代码>匹配除换行符<代码> \ n 代码>之外的任何单字符
<代码> * 代码>匹配前面的子表达式零次或多次要匹配<代码> *> 代码字符,请使用<代码> \ * 代码>
<代码>{代码>标记限定符表达式的开始。要匹配<代码>{> 代码,请使用<代码> \{代码>
<代码> [a - z] 代码>匹配小写字母
<代码> + 代码>匹配前面的子表达式一次或多次。要匹配<代码> +> 代码字符,请使用<代码> \ + 代码>,<代码> + 代码>限定是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个<代码> ?> 代码就可以实现非贪婪或最小匹配。
<代码>()代码>标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用<代码> \(代码>和<代码> \)代码>
下图展示了括号的选择作用
2。在Java中使用正则表达式匹配${关键}
这里直接贴代码了
package 测试; import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; import java.util.ArrayList; import java.util.LinkedHashSet; import 并不知道; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern;/* * ,* @Author 歌 ,* @Date 2021/2/26 16 ,* @Version 1.0 ,* @Description ,*/public class  TestUtil { ,/* * ,,*,利用好其预编译功能,可以有效加快正则匹配速度 ,,*/public 才能static Pattern  dynamic =, Pattern.compile (“。* \ \ $ \ \ {([a - z] +) \ \}。*“); public 才能static Pattern  dynamicLimitCount =, Pattern.compile(美元“\ \ \ \ {([a - z] +) \ \}“); ,/* * ,,*,判断内容中是否包含动态参数(${关键}形式的) ,,* ,,*,@param content 要判断的内容 ,,* @return ,,*/public 才能static boolean  isContainsDynamicParameter (String 内容),{ ,,,return dynamic.matcher(内容).matches (); ,,} ,/* * ,,*,按照动态内容的参数出现顺序,将参数放到列表中 ,,* ,,*,@param 内容 ,,* @return ,,*/public 才能static List< String>, getKeyListByContent (String 内容),{ ,,,Set, paramSet =, new LinkedHashSet<在(); ,,,Matcher m =, dynamicLimitCount.matcher(内容); ,,,while (m.find ()), { ,,,,,paramSet.add (m.group (1)); ,,,} ,,,return new ArrayList<祝辞(paramSet); ,,} public 才能;static  void main (String [], args), { ,,,//测试代码 ,,,String content =,“尊敬的${名称}客户您好,请于${时间}前到达“; ,,,System.out.println (isContainsDynamicParameter(内容)); ,,,List , keyListByContent =, getKeyListByContent(内容); ,,,System.out.println(“内容中的动态参数为:“); ,,,keyListByContent.forEach (system . out:: println); ,,} }
测试代码的运行结果如图
关于“在Java中使用正则表达式匹配${关键}的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。