2013-01-03 82 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}$

相關問題