我需要幫助將正則表達式匹配到匹配以「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. 正則表達式以匹配以Javascript結尾的文件
- 3. 以e結尾的單詞的正則表達式
- 4. 正則表達式ISSUE - 無法匹配以無結尾的URL
- 5. 正則表達式匹配以%結尾的字符串php
- 6. 正則表達式:匹配所有包含單詞的單詞
- 7. 用於匹配單詞或單詞的正則表達式
- 8. 正則表達式匹配後的詞
- 9. PHP的正則表達式匹配詞
- 10. Java正則表達式:以's'結尾的單詞除特定單詞外
- 11. 正則表達式 - 匹配一組詞
- 12. 正則表達式匹配兩個詞
- 13. C++正則表達式匹配「+」量詞
- 14. Perl正則表達式可以匹配CamelCase單詞嗎?
- 15. 正則表達式匹配特定函數調用的結尾
- 16. c#正則表達式來匹配字符串的結尾?
- 17. 正則表達式匹配所有以字符串開頭並以字符串結尾的單詞
- 18. 正則表達式以從位置13匹配到行尾的
- 19. 如何寫正則表達式匹配結尾字
- 20. 讓正則表達式匹配過去行結尾
- 21. 正則表達式匹配空格或字符串結尾
- 22. 正則表達式 - 匹配所有與數字結尾
- 23. 正則表達式匹配到文本結尾
- 24. 正則表達式拼寫單詞和字符串結尾
- 25. 簡單的正則表達式匹配
- 26. 簡單的正則表達式匹配
- 27. 正則表達式匹配C結構
- 28. 正則表達式匹配以y或z結尾的單詞,但不是兩個都一起
- 29. C++ 11正則表達式匹配不以句點結尾的完整單詞嗎?
- 30. 正則表達式匹配完整的單詞,從第(JavaScript)的
這些詞怎麼樣:'Id'(以'Id'開頭和結尾)和'O'HaraId'(你想匹配'O'HaraId'還是'HaraId')和'foo-barId'(do你想匹配'foo-barId'或'barId')?簡而言之:請定義「單詞」的含義(或者你想要的是什麼)。 – 2010-02-12 20:11:28