我想要製作一個正則表達式,它匹配所有出現在一行開頭的單詞,並以#開頭。我的正則表達式(簡單)有什麼問題?
例如在:
#region #like
#hey
這將匹配#地區和#hey。
這就是我現在所擁有的:
^#\w*
我張貼了這個問題深表歉意。我確信它有一個非常簡單的答案,但我一直無法找到它。我承認我是一個正則表達式noob。
我想要製作一個正則表達式,它匹配所有出現在一行開頭的單詞,並以#開頭。我的正則表達式(簡單)有什麼問題?
例如在:
#region #like
#hey
這將匹配#地區和#hey。
這就是我現在所擁有的:
^#\w*
我張貼了這個問題深表歉意。我確信它有一個非常簡單的答案,但我一直無法找到它。我承認我是一個正則表達式noob。
你有什麼應該工作,這取決於你傳遞什麼樣的標誌爲RegexOptions。你需要確保你通過RegexOptions.Multiline
:
var matches = Regex.Matches(input, @"^#\w*", RegexOptions.Multiline);
見我聯繫上面的文檔:
多行多行模式。更改^和$的含義,以便它們分別匹配任何行的開頭和結尾,而不僅僅是整個字符串的開頭和結尾。
哇。謝謝。我知道我在做一些愚蠢的事情。我會盡快接受你的回答。 – Justin 2010-08-18 05:09:59
使用這個表達式
^#.+?\b
.+
將確保至少一個字符後#
和\b
指示字boundry。 ?
增加了非貪婪的+
操作,以避免匹配整個字符串#region #like
正則表達式看起來不錯,請確保您使用的是逐字字符串(@前綴)來定義你的正則表達式,即@"^#\w*"
否則反斜線將被視爲一個轉義序列。
RegEx沒有問題。也許你用它錯了? 'Regex.Match(「#region #like」,@「^#\ w *」)。Groups [0] .Value'。 – 2010-08-18 05:07:28