2013-01-03 47 views
2

中看到我的进步正则表达式的工作Ltd[.'s]{0,2} http://rubular.com/r/1FZvA9Nlul如何使用^(字符串的开始)在正则表达式

我运行它根据该列表:

​​

如何写一个正则表达式,这样我与我目前的RegExp匹配的sdfTestLtdLtdTestTEst不匹配。

为了进一步澄清。

我通过上面所列内容通过Java的String.matches()方法,我希望它仅适用于以下方式返回true:

Ltd's 
Ltd. 
Ltd 
Ltds 

回答

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 
+1

+1,尽管我更喜欢用我的正则表达式来避免任何混淆。 –

+0

+1感谢您使用java代码和相关信息性解释展示示例。虽然所有其他答案对我的问题同样正确,但是这个包含java示例,所以我选择了这个。 – Watt

4

将一个^开头,并且$底。

http://rubular.com/r/F2VQUUvWLf

+0

谢谢你向我展示rubular。我不知道这件事。太好了! – dashrb

+1

@dashrb当然...虽然它*在*问题中被链接到;) –

2

只是把^开头。我想你可能会对输出的工作方式感到困惑。

它只显示您写入Match result:窗口的任何内容,但只有匹配项会突出显示。如果你也想控制字符串的结尾,比你可以使用$

5

这应该完全符合您的例子: ^Ltd('?s|\.)?$

+0

+ 1对于稍微好一点的正则表达式。 –

+0

+1谢谢!我今天学到了新东西。 – Watt

+0

@瓦特:很高兴帮助。 – iamnotmaynard

0

使用这个表达式 ^Ltd[.'s]{0,2}$

相关问题