查看我正在进行中的工作RegExp Ltd[.'s]{0,2}
http://rubular.com/r/1FZvA9Nlul
我正在针对此列表运行它:
Ltd's
Ltd.
Ltd
LtdTestTEst
Ltds
sdfTestLtd
如何编写RegExp以使我与sdfTestLtd
和LtdTestTEst
不匹配,这与我当前的RegExp匹配。
进一步澄清。
我通过java的String.matches()方法传递上面的列表,我希望它仅对以下模式返回true:
Ltd's
Ltd.
Ltd
Ltds
答案 0 :(得分:5)
这应该与您的示例完全匹配:
^Ltd('?s|\.)?$
答案 1 :(得分:4)
在开头加^
,在结尾加$
。
答案 2 :(得分:3)
你不应该这样做。
如果使用^ $
或等效方法,Java中通常不需要String.matches()
特殊字符来表示字符串的开始/结束,因为Java(与其他搜索/匹配运算符相反)语言,与Rubular工具相反)匹配完整字符串。
System.out.println("xHello".matches("Hello"));
// false: no match
System.out.println("xHello".matches(".*Hello"));
// true: match
System.out.println("sdfTestLtd ".matches("Ltd[.'s]{0,2}"));
// false: no match
答案 3 :(得分:2)
只需将^
放在开头即可。我想你可能会对输出的工作方式感到困惑。
只显示您在Match result:
窗口中写入的内容,但只会突出显示匹配项。
如果你想控制字符串的结尾,那么你可以使用$
答案 4 :(得分:0)
使用此正则表达式
^Ltd[.'s]{0,2}$