我需要幫助將正則表達式匹配到匹配以「Id」結尾的單詞並區分大小寫的匹配項。正則表達式:匹配以「Id」結尾的單詞
回答
嘗試此正則表達式:
\w*Id\b
\w*
允許字字符的Id
前面和\b
確保Id
是在字的結束時(\b
是詞邊界斷言)。
@epitka,請注意'\ w'也匹配數字和下劃線。簡而言之'___ Id'和'12345Id'的字符串也將被匹配。 – 2010-02-12 20:17:29
我給你一個upvote,但是外延並沒有指定是否只是「Id」是允許的,所以我會試圖改變*爲+ – BenAlabaster 2010-02-12 20:19:17
最好的答案:簡短易懂! – huug 2013-03-08 11:51:34
\A[a-z]*Id\z
怎麼樣? [這使得Id
之前的字符可選。使用\A[a-z]+Id\z
如果需要有前Id
一個或多個字符。]
Regex ids = new Regex(@"\w*Id\b", RegexOptions.None);
「\ B」 表示 「字破發」 & \ W指的是任何單詞字符,所以\ W *身份證\ B表示「{東西}ID」。通過不包括RegexOptions.IgnoreCase,它將區分大小寫。
我會使用
\b[A-Za-z]*Id\b
的\ b詞即空格,製表符或換行,或者開始或字符串的結束的開始和結束相匹配。
[A-Za-z]將匹配任何字母,而*表示0+匹配。最後是Id。
請注意,這會匹配中間有大寫字母的單詞,如'teStId'。
我用http://www.regular-expressions.info/爲正則表達式參考
設置'a-z'不包括'é'和其他類似的字符。也許不是一個問題,但外延可能想知道的東西。 – 2010-02-12 20:18:44
[A-Za-z]與非英文字母字符不匹配,所以應避免使用\ w,除非可以保證只出現英文字母。 – BenAlabaster 2010-02-12 20:20:40
這可能做的伎倆:
\b\p{L}*Id\b
凡\p{L}
任何(Unicode)的字母匹配和\b
單詞邊界匹配。
\ p {L}在C#regex中工作嗎?我以前從來沒有見過,通常選擇\ w – BenAlabaster 2010-02-12 20:18:19
@BenAlabaster,是的:http://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedUnicodeGeneralCategories是的,也許'\ w'是對於OP來說足夠了,但它比字母更匹配(請參閱我在Gumbo的帖子下的評論)。 – 2010-02-12 20:21:28
濃湯得到我的投票,但是,OP不指定是否只是「ID」被允許的話,這意味着我會做一個小的修改:
\w+Id\b
1個或多個單詞字符後跟通過「Id」和一個突破的空間。 [a-zA-Z]變體不考慮非英文字母字符。我也可以用\ s而不是\ b作爲空格而不是空格。這取決於你是否需要包裝多行。
- 1. 阿拉伯詞與以「#」結尾的正則表達式匹配?
- 2. 正則表達式匹配單詞和結尾的空白對
- 3. 以asterix結尾的單詞的Java正則表達式模式
- 4. 正則表達式來匹配單詞
- 5. 正則表達式以匹配以Javascript結尾的文件
- 6. 正則表達式匹配單詞末尾,而不是一個「#」
- 7. 以e結尾的單詞的正則表達式
- 8. 正則表達式ISSUE - 無法匹配以無結尾的URL
- 9. 正則表達式匹配以%結尾的字符串php
- 10. 定義正則表達式以匹配網址的結尾
- 11. 正則表達式 - 匹配'?'後的字符串並以'#'結尾
- 12. 正則表達式匹配點結尾的西班牙語單詞,並強調
- 13. 用於匹配單詞或單詞的正則表達式
- 14. 正則表達式:匹配所有包含單詞的單詞
- 15. 正則表達式來匹配行尾
- 16. PHP的正則表達式匹配詞
- 17. 正則表達式匹配後的詞
- 18. Java正則表達式:以's'結尾的單詞除特定單詞外
- 19. 正則表達式以匹配沒有空格的單詞
- 20. 正則表達式匹配以「$」開頭的單詞
- 21. 使用正則表達式匹配部分單詞或單詞
- 22. 正則表達式 - 匹配一組詞
- 23. C++正則表達式匹配「+」量詞
- 24. 正則表達式匹配兩個詞
- 25. Perl正則表達式可以匹配CamelCase單詞嗎?
- 26. 正則表達式匹配行的開頭和結尾?
- 27. 正則表達式開始用[和結尾] - 匹配的話只
- 28. 正則表達式匹配特定函數調用的結尾
- 29. c#正則表達式來匹配字符串的結尾?
- 30. 正則表達式匹配以句點開頭並以下劃線結尾的單詞嗎?
這些詞怎麼樣:'Id'(以'Id'開頭和結尾)和'O'HaraId'(你想匹配'O'HaraId'還是'HaraId')和'foo-barId'(do你想匹配'foo-barId'或'barId')?簡而言之:請定義「單詞」的含義(或者你想要的是什麼)。 – 2010-02-12 20:11:28