首頁 >後端開發 >php教程 >關於正規表示式的一個問題

關於正規表示式的一個問題

WBOY
WBOY原創
2016-08-04 08:53:58944瀏覽

問題: 有字串:「python php ruby​​ javascript jsonp perhapsphpisoutdated」
對於該字串,使用純正則取得 所有帶p 但是不能包含ph 的單字

輸出數組 [ 'python', 'javascript', 'jsonp' ]

這個問題想了比較久,也沒思路
我的解法是

<code>var result = str.match(/\b\w*(?=p)\w*\b/g)
                .filter((value)=>!/.*(?=ph)/.test(value))
var result2 = str.match(  /\b((?!ph|\s).)*((p[^h\s]((?!ph|\s).)*)|p)\b/g  ) 
console.log(result2)</code>

但是不符合純正則的要求

群裡有大牛給了這麼一個答案

<code>/\b((?!ph|\s).)*((p[^h\s]((?!ph|\s).)*)|p)\b/g </code>

完美運行

但是我看不懂,希望有大牛能幫我解讀

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn