这应该返回true,而是返回false.
"ADC".matches("A.*?C")
Run Code Online (Sandbox Code Playgroud)
我在javascript正则表达式测试器上测试过:http://regexpal.com/
它有效,为什么它不能在Java中工作?
编辑:与此相同:
System.out.println("DEAGHHF".matches("(A.*?C|C.*?A|D.*?C|C.*?D|A.*?F|F.*?A)"));
Run Code Online (Sandbox Code Playgroud)
返回false,regexpal返回true(与其他javascript正则表达式引擎一样).
不,它返回true.
System.out.println("ADC".matches("A.*?C"));
Run Code Online (Sandbox Code Playgroud)
打印true.
regexpal.com实现似乎是错误的(这是可以理解的,因为它是版本0.1.4).尝试ABC重复输入.只有每一秒ABC都被拒绝.(至少在我的firefox版本中查看它时.)
关于你的编辑:
A.?C|C.?A|D.?C|C.?D|A.?F|F.?A
Run Code Online (Sandbox Code Playgroud)
被解释为
A.*?C or
C.*?A or
D.*?C or
C.*?D or
A.*?F or
F.*?A
Run Code Online (Sandbox Code Playgroud)
换一种说法
Something that starts with A and ends with C, or
Something that starts with C and ends with A, or
Something that starts with D and ends with C, or
....
Something that starts with F and ends with A,
Run Code Online (Sandbox Code Playgroud)
由于"DEAGHHF"开始D和结束F,它将不匹配.
也许你正在寻找这种Matcher.find方法
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |