假设我有多种模式P1,P2,P3 ,,等等.这些模式是不同的正则表达式模式,以匹配DATE的不同变化.
如何在一段代码中最有效地匹配这些输入文本.
当然,我可以写一个for()来逐个循环这些模式,但是有更好的方法吗?
ani*_*udh 14
我认为您可以使用|正则表达式的运算符并将不同的正则表达式置于paranthesis中,以便将其视为要匹配的整个正则表达式.
("(P1)|(P2)|(P3)")
fge*_*fge 11
补充其他答案......
您可以使用交替运算符编写一个难以阅读的大模式:
r1|r2|r3|...|rn
Run Code Online (Sandbox Code Playgroud)
其他地方r1本身就是"完全逃亡"的正则表达式.
但是你必须要小心轮换的顺序:第一个匹配胜利.也就是说,如果正则表达式引擎不是POSIX正则表达式引擎,但java.util.regex的引擎不是.
因此,catflap使用正则表达式使用正则表达式:
cat|catflap
Run Code Online (Sandbox Code Playgroud)
Java会匹配cat; POSIX正则表达式引擎将匹配catflap(最长,最左边的匹配).
坚持更多个性化,可维护的模式是一个更好的选择.
| 归档时间: |
|
| 查看次数: |
38376 次 |
| 最近记录: |