java中的正则表达式
我知道这是一个简单的问题,但我被阻止了:我想检索以这种形式编写的所有字符串:java中的正则表达式,java,regex,Java,Regex,我知道这是一个简单的问题,但我被阻止了:我想检索以这种形式编写的所有字符串: $F{ETIQX} 其中X是一个数字。我编写了这个正则表达式,但出现了错误: if (textField.getText().matches("$F{ETIQ\d}")){ System.out.println("matches!!"); } 任何帮助都将不胜感激 \$F\{ETIQ\d\} 在正则表达式中有意义的转义字符 $ means end of string { means start of a
$F{ETIQX}
其中X是一个数字。我编写了这个正则表达式,但出现了错误:
if (textField.getText().matches("$F{ETIQ\d}")){
System.out.println("matches!!");
}
任何帮助都将不胜感激
\$F\{ETIQ\d\}
在正则表达式中有意义的转义字符
$ means end of string
{ means start of a quantifier
} means end of a quantifier
为了匹配这些,你必须从字面上避开它们
这是一个演示
在java中,\
没有任何意义,并且会出现错误,因此我们需要使用\
来转义\
在正则表达式中有意义的转义字符
$ means end of string
{ means start of a quantifier
} means end of a quantifier
为了匹配这些,你必须从字面上避开它们
这是一个演示
在java中,\
没有任何意义,并且会出现错误,因此我们需要使用\
来转义\
我要检索所有字符串
那么您首先就不应该使用.matches()
。但是一个匹配器和和查找().matches()
用词不当。只有当整个输入匹配正则表达式时,它才会成功(这与正则表达式匹配的定义相矛盾,正则表达式匹配可以发生在输入的任何地方)
此外,您的正则表达式应该是:
"\\$F\\{ETIQ\\d\\}"
(您需要在Java字符串中转义反斜杠)
$
,{
和}
是正则元字符;第一个是匹配输入结尾的锚,后两个是重复量词的边界
您的代码应为:
private static final Pattern PATTERN = Pattern.compile("\\$F\\{ETIQ\\d\\}");
// ...
final Matcher m = PATTERN.matcher(textField.getText());
while (m.find())
// work with m.group()
我要检索所有字符串
那么您首先就不应该使用.matches()
。但是一个匹配器和和查找().matches()
用词不当。只有当整个输入匹配正则表达式时,它才会成功(这与正则表达式匹配的定义相矛盾,正则表达式匹配可以发生在输入的任何地方)
此外,您的正则表达式应该是:
"\\$F\\{ETIQ\\d\\}"
(您需要在Java字符串中转义反斜杠)
$
,{
和}
是正则元字符;第一个是匹配输入结尾的锚,后两个是重复量词的边界
您的代码应为:
private static final Pattern PATTERN = Pattern.compile("\\$F\\{ETIQ\\d\\}");
// ...
final Matcher m = PATTERN.matcher(textField.getText());
while (m.find())
// work with m.group()
所以你也应该逃避最后一个bracket@AndiKrusch是的,我们也应该逃离最后一个括号,我错过了,所以你也应该逃离最后一个括号bracket@AndiKrusch是的,我们也应该避开最后一个括号,我错过了