Heim > Artikel > Backend-Entwicklung > Eine Frage zu regulären Ausdrücken
Problem: Es gibt eine Zeichenfolge: „python php ruby javascript jsonp mightphpisoutdated“
Verwenden Sie für diese Zeichenfolge einen reinen regulären Ausdruck, um alle Wörter mit p, aber nicht ph zu erhalten
Ausgabearray [ 'python', 'javascript', 'jsonp' ]
Ich habe lange über dieses Problem nachgedacht und ich habe keine Ahnung
Meine Lösung ist
<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>
Aber es genügt nicht den Anforderungen der reinen Regelmäßigkeit
Ein großer Typ in der Gruppe gab diese Antwort
<code>/\b((?!ph|\s).)*((p[^h\s]((?!ph|\s).)*)|p)\b/g </code>
Funktioniert perfekt
Aber ich kann es nicht verstehen, ich hoffe, jemand kann mir helfen, es zu verstehen