簡體   English   中英

匹配內部沒有連字符的單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM