Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Frage zu regulären Ausdrücken

Eine Frage zu regulären Ausdrücken

WBOY
WBOYOriginal
2016-08-04 08:53:58925Durchsuche

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

Stellungnahme:
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