2010-10-26 184 views
2

我想用正則表達式來判斷一個字符串是否匹配* abc - 換句話說,它以任何東西開始,但用「abc」結束?* abc的正則表達式是什麼?

這是什麼正則表達式? 我試過* abc,但是「Regex.Matches」對xxabcd返回true,這不是我想要的。

+0

請發表你尋找什麼,以及要失敗的任何字符串。 – 2010-10-26 17:57:10

+1

不要忽略理解如何使用正則表達式的價值,但是如果你真的有一個字符串對象,並且想知道它是否以「abc」結尾,那麼可以使用字符串實例方法'.EndsWith(「abc」) 'http://msdn.microsoft.com/en-us/library/2333wewz.aspx – 2010-10-26 19:06:59

+0

https://regex101.com/ - 這個網站是非常有用的嘗試正則表達式和測試它。並在右下角有參考。 – Shan 2017-02-24 16:12:49

回答

4
.*abc$ 

應該做的。

+2

你並不需要' *' – nico 2010-10-26 17:48:51

+1

正確,這取決於他是否想要做的不僅僅是檢查字符串 - 也許在事後跟隨匹配。 – 2010-10-26 17:52:19

+0

保留'。*'並且它將「消耗」之前的所有字符(即它們);將它刪除,只有'abc'將被「匹配」 – Brad 2010-10-26 17:56:20

8

abc$

你需要$到字符串的結尾相匹配。

+0

我想我找到了答案:^。* abc \ z「 – user380719 2010-10-26 17:54:51

+0

是的,$也適用於...... – user380719 2010-10-26 17:55:18

+0

'$'和'\ Z'之間的區別在於'$'將匹配一行的結尾。如果你的字符串中有一個回車符,它將在回車之前匹配,'\ Z'將匹配字符串的末尾,不管它是否有回車符 – CanSpice 2010-10-26 17:58:48

1

試試這個:

.*abc$ 

的$行的結尾匹配。

1
^.*abc$ 

將捕獲任何以abc結尾的行。

4

所以你這裏有幾條「魚」,但是here's how to fish

  • 在線表達式庫和基於.NET的測試儀:RegEx Library
  • 在線基於Ruby的測試儀進行測試exressions Rubular
  • 一個Windows應用程序(而不是.NET的速度更快)(最全功能,但沒有零寬度查找aheads或後面)RegEx Coach
+0

我一直在尋找正則表達式的基本指南,這看起來像一個方便的參考。 +1 – 2010-10-26 17:53:57

+0

用於教學而不是解答 – xPheRe 2010-10-26 18:06:26

1

這取決於究竟你要尋找的。如果你想匹配整行,如:

與字線和spacesabc

你可以這樣做:

^.*abc$ 

^匹配行的開頭和$結束。

但是,如果您在一行中匹配單詞,例如

試圖匹配thisabc和thisabc但不thisabcd

你將不得不做這樣的事情:

\w*abc(?!\w) 

這意味着,匹配任意數量的連續字符,其次是ABC和那麼任何東西但是一個字符(例如空格或行尾)。

+0

我認爲你的答案代表了用戶想要的內容......使用\ w參數,你會看到任何以abc結尾的單詞。 – dutertimes 2010-10-26 18:10:12

0

如果你想在ABC將結束4個字符的字符串,/^.abc$/

相關問題