[英]Match words with no hyphen inside
我需要一個正則表達式,允許在其中沒有連字符的單詞。 例如,在字符串“非單詞句子”中,它應該只匹配“句子”。 我寫:
"\b(?!\w+[-]\w+)\w+"
它失敗了:
它不僅匹配“句子”而且匹配“詞”。
如何讓它忽略里面用連字符的單詞?
好的,這是一個用於PCRE(Perl兼容的正則表達式系統,這意味着大多數):
(?<![-])\b[a-zA-Z]+\b(?![-])
讓我為你分解一下:
(?<![-])
:負面的后衛 - “下一個匹配的東西,看看它之前的東西。如果它是一個連字符,忽略這個匹配”
\\b[a-zA-Z]+\\b
:字邊界,字,字邊界。 我們的'事'。
(?![-])
:一個負面的預測 - “匹配的東西,看看它之后的東西。如果它是一個連字符,忽略這個匹配”
這是我最喜歡的在線正則表達式測試儀,RegExr。
這對你有用嗎:
(?<=[^\s])[a-zA-Z]*(?=[$\s])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.