Zum Beispiel habe ich strings „Domäne“, „asset44.domain“, „asset.domain“, „domain1“Perl reguläre Ausdrücke mit Ausnahme
ich mit regulären Ausdrücken, wo alle Strings entsprechen müssen, ist „domain“ Wort , aber mit einer Ausnahme: Ich brauche keine Übereinstimmung "asset44.domain" und "domain1".
Zuerst habe ich if ($_ =~ /domain/io) {
Es ist passend zu allen Saiten
Nachdem ich if ($_ =~ /domain(?!1)/io) {
setzen Es ist passend zu allen Zeichenfolge, außer „domain1“
Und jetzt, ich kann nicht verstehen, wie „asset44 auszunehmen. Domain ", aber behalten Sie die Übereinstimmung" asset.domain "bei.
P.S. asset44.domain kann eine andere Nummer sein: zB asster56.domain.
P.P.S Lösung:(?<!asset)(?<!\d\.)domain(?!1)
https://regex101.com/r/sF2qG3/1
Über den '/ o' Modifikator, sagt die [doc] (http://perldoc.perl.org/perlre.html)' o - vorgeben, um Ihren Code zu optimieren, aber tatsächlich Bugs einzuführen. – Dada