Write a Java regular expression
我有一个问题要编写Java正则表达式,下面是匹配字符串的要求:
' or abc :匹配X' or abc 匹配Good X' or abc 匹配Good 'X' or abc 不匹配
我使用的是java.util.regex.pattern和java.util.regex.matcher。匹配意味着Java.UTI.ReXE.MatHeC.MatChess()返回true。
这是我写的正则表达式:
对于我的应用程序中的一些需求,我必须在正则表达式的开头和结尾使用".*"。
我刚接触雷杰克斯,有人能帮我吗?
谢谢。
从您的示例中,我猜您正在尝试检查字符串中是否只有一个
regex可以是
[^']* 不是' 的一切' :一个' 。[^']* 不是' 的一切
1 2 3 4 5 6 7 8 9 10 11 12 |
输出:
1 2 3 4 | true true true false |
号
但是,你不需要一个
1 | yourString.matches("[^']*'[^']*"); |
如果必须使用.*在表达式的开头,则此表达式有效:
1 | ".*(?=(?<!Good 'X)' or abc$).*" |
诀窍是它用"(?"展望未来。="以"'或abc"结尾但前面没有"good"x"的表达式-使用反向查找"(?<!.
此regex采用了负向前看的方式,通过了您的测试:
1 | if (str.matches("^(?!(.*?'){2}).*")) |
。
观看现场演示。