這是一段英文字串
<code>When I was young,my uncle king of the jungle,one day he call me,and say we walk to the river,i asked why? my uncle say, you must learn how to cherish the water.</code>
我想寫一個只要該單字就能可以的正規表示式
這是我寫的。
<code>[^a-zA-Z]young[^a-zA-Z]</code>
可是找不到文章第一個字
線上正規表示式
這是一段英文字串
<code>When I was young,my uncle king of the jungle,one day he call me,and say we walk to the river,i asked why? my uncle say, you must learn how to cherish the water.</code>
我想寫一個只要該單字就能可以的正規表示式
這是我寫的。
<code>[^a-zA-Z]young[^a-zA-Z]</code>
可是找不到文章第一個字
線上正規表示式
[^a-zA-Z]
改成 [^a-zA-Z]?
就可以了啊
<code>(^|[^a-zA-Z])you([^a-zA-Z]|$) </code>
(^|[^a-zA-Z])When([^a-zA-Z]|$)
我覺得這樣就可以了,考慮了第一個單字和最後一個單字的情況,其實我覺得最簡單的方式還是你在字串的頭部和尾部個加上一個空格或其他一個特別的字符,這樣你原來的正則就能成功匹配到了。
[^a-zA-Z]
這個模式匹配一個 非「a到z或A到Z」的字符 ,When的前面並沒有字符,自然匹配不到了。其他匹配到的單字也是匹配到了一個空格的。
如果你並不想空格,其實可以用轉義字符b來匹配單字邊界,這個轉義字符可以匹配開頭、結尾以及空格、標點形成的單字邊界,本身並不會匹配到任何多餘的字符。
bWhenb
就可以了。