2010-08-18 76 views
1

我想要製作一個正則表達式,它匹配所有出現在一行開頭的單詞,並以#開頭。我的正則表達式(簡單)有什麼問題?

例如在:

#region #like 
#hey 

這將匹配#地區和#hey。

這就是我現在所擁有的:

^#\w* 

我張貼了這個問題深表歉意。我確信它有一個非常簡單的答案,但我一直無法找到它。我承認我是一個正則表達式noob。

+0

RegEx沒有問題。也許你用它錯了? 'Regex.Match(「#region #like」,@「^#\ w *」)。Groups [0] .Value'。 – 2010-08-18 05:07:28

回答

5

你有什麼應該工作,這取決於你傳遞什麼樣的標誌爲RegexOptions。你需要確保你通過RegexOptions.Multiline

var matches = Regex.Matches(input, @"^#\w*", RegexOptions.Multiline); 

見我聯繫上面的文檔:

多行多行模式。更改^和$的含義,以便它們分別匹配任何行的開頭和結尾,而不僅僅是整個字符串的開頭和結尾。

+0

哇。謝謝。我知道我在做一些愚蠢的事情。我會盡快接受你的回答。 – Justin 2010-08-18 05:09:59

0

使用這個表達式

^#.+?\b 

.+將確保至少一個字符後#\b指示字boundry。 ?增加了非貪婪的+操作,以避免匹配整個字符串#region #like

1

正則表達式看起來不錯,請確保您使用的是逐字字符串(@前綴)來定義你的正則表達式,即@"^#\w*"否則反斜線將被視爲一個轉義序列。

相關問題