2011-04-03 24 views
3

以下匹配正則表達式的末尾的「S」上的單詞或單詞片段:正則表達式僅在它作爲較大單詞的一部分出現時才匹配單詞後綴?

/s\b/i 

是否有可能只匹配尾隨■如果它是一個較大的字的一部分?

也就是說,例如,字符串「words」中的後綴s是匹配的,但如果某人自己輸入了字符串「s」,則不會匹配。

謝謝你的建議

+0

它看起來像你正在檢測複數's'。然後,除非你處理的是整個單詞都是大寫的文本(upcased),相關的's'將總是小寫字母,並且在正則表達式後你不需要'i'。 – sawa 2011-04-04 00:17:18

回答

3

喜歡這個地方\ W修補任何「字」字後面秒,然後單詞邊界

/\ws\b/i 
3

標準答案是

/\ws\b/i 

因爲是給出之前,但有警告。確保Perl的\ w定義適合您的使用。 Perl認爲'_'是一個單詞字符,所以這將匹配'2_s'作爲後綴單詞。如果您只需要字母字符,則可以使用\ p {IsAlpha}。

您仍然有問題,上面會認爲'214bs'是結尾處帶有's'的「單詞」214b。相反,你可能需要這樣的東西:

/\b\p{IsAlpha}+s\b/ 

這一切都取決於你的輸入看起來像。

相關問題