Java 用于在文本中查找子字符串的正则表达式
我有一个文本文件,其中包含一些我想用Java正则表达式提取的字符串, 这些字符串的格式为:Java 用于在文本中查找子字符串的正则表达式,java,regex,Java,Regex,我有一个文本文件,其中包含一些我想用Java正则表达式提取的字符串, 这些字符串的格式为: $numbers,numbers,numbers…,numbers (以$开头,然后是一组数字加上,,最后是。) 这是我的模式 Pattern pattern = Pattern.compile("$*##"); Matcher matcher = pattern.matcher(text); if (matcher.find()) { } 结果发现没有任何东西
$numbers,numbers,numbers…,numbers
(以$
开头,然后是一组数字加上,
,最后是。
)
这是我的模式
Pattern pattern = Pattern.compile("$*##");
Matcher matcher = pattern.matcher(text);
if (matcher.find())
{
}
结果发现没有任何东西符合我的模式
谁能告诉我有什么问题吗?您需要做:
Pattern pattern = Pattern.compile("\\$\\$\\d+(,\\d+)*##$");
感谢@Pshemo为解决方案提供了宝贵的投入。对您来说是一个很好的起点。
$
在正则表达式中是特殊的(您可能需要避开它),*
意味着在它出现零次或多次之前,它就已经出现了。您测试过它吗?我有一种感觉,你可能会在$
方面遇到问题,*
*
的贪婪是你能做的最糟糕的事情,如果你知道两边的细节@狗鼻子我知道,但那是OP问的for@Sanjeev不,不是。他明确指出,标签之间只能有数字和/或,
<代码>*将匹配任何东西-即使是###
本身,如果后面还有另一个…@Pshemo我不确定为什么它不适合您。请重新检查