問題: 有字串:「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>
完美運行
但是我看不懂,希望有大牛能幫我解讀