Eine Frage zu regulären Ausdrücken

WBOY
Freigeben: 2016-08-04 08:53:58
Original
924 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Funktioniert perfekt

Aber ich kann es nicht verstehen, ich hoffe, jemand kann mir helfen, es zu verstehen

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage