如何在RegEx中使用^(字符串的开头)

时间:2013-01-03 19:15:53

标签: java regex

查看我正在进行中的工作RegExp Ltd[.'s]{0,2} http://rubular.com/r/1FZvA9Nlul

我正在针对此列表运行它:

Ltd's
Ltd.
Ltd
LtdTestTEst
Ltds
sdfTestLtd

如何编写RegExp以使我与sdfTestLtdLtdTestTEst不匹配,这与我当前的RegExp匹配。

进一步澄清。

我通过java的String.matches()方法传递上面的列表,我希望它仅对以下模式返回true:

Ltd's
Ltd.
Ltd
Ltds

5 个答案:

答案 0 :(得分:5)

这应该与您的示例完全匹配: ^Ltd('?s|\.)?$

答案 1 :(得分:4)

在开头加^,在结尾加$

http://rubular.com/r/F2VQUUvWLf

答案 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}$