我需要一個正則表達式,它匹配以字邊界結尾的表達式,但不會將連字符視爲邊界。 即得到所有表達式由不包含連字符的正則表達式字邊界
type ([a-z])\b
匹配,但不匹配例如
type a-1
改變措辭:我想這個詞邊界運營商\ B的同等物,而不是使用單詞字符類[A-Za-z0-9_]
,使用擴展類:[A-Za-z0-9_-]
我需要一個正則表達式,它匹配以字邊界結尾的表達式,但不會將連字符視爲邊界。 即得到所有表達式由不包含連字符的正則表達式字邊界
type ([a-z])\b
匹配,但不匹配例如
type a-1
改變措辭:我想這個詞邊界運營商\ B的同等物,而不是使用單詞字符類[A-Za-z0-9_]
,使用擴展類:[A-Za-z0-9_-]
可以使用前瞻爲此,最短的是使用負前瞻:
type ([a-z])(?![\w-])
(?![\w-])
將意味着「如果接下來的文字是\w
或者是-
失敗的比賽」。
下面是一個使用正常的前瞻選項:
type ([a-z])(?=[^\w-]|$)
您可以閱讀(?=[^\w-]|$)
因爲如果接下來的文字是不在字符類[\w-]
「只匹配,或者這是的結束串」。
這可以在沒有查找的情況下完成嗎? – eyaler 2012-05-28 02:27:08
我有一個非常類似的問題,除了我不想考慮「*」爲界人物。下面是我所做的:
\b(?<!\*)[^\s\*]+)\b(?!*)
基本上,如果你在一個單詞邊界,回頭看一眼的性格和不匹配,如果前一個字符是一個「*」。如果你在中間,不要在空格或星號上匹配。如果你在最後,確保結尾不是星號。在你的情況下,我認爲你可以使用\ w而不是\ s。對我來說,這個工作在這些情況下:
*word
wo*rd
word*
您的正則表達式的語法無效 – MaxZoom 2015-03-06 15:44:22
什麼正則表達式引擎你使用 - 這是.NET,JavaScript等? – Jay 2012-04-17 18:00:38
@Jay:我正在使用.NET – eyaler 2012-04-17 18:01:29