Die Beantwortung der Frage:
ich zwei regex die in einer Linie verbinden wollen ... Ich brauche beide Funktionalitäten (Verbindungen enthalten 'http'
sowie /news/
)
ich verstehen und als als eine Voraussetzung für beide http
und /news/
in der Zeichenfolge vorhanden sein. So können Sie eine einfache
re.compile(r'^http://.*/news/')
verwenden Es wird http
am Anfang übereinstimmen und /news/
Teilzeichenfolge irgendwo in der Zeichenkette.
Muster Details:
^
- Beginn der Zeichenfolge
http://
- eine Folge von Literalen
.*
- 0+ alle Zeichen aber eine neue Zeile
/news/
- Teilzeichenfolge /news/
.
Makel zu bekommen Ergebnisse mit entwederhttp
zu Beginn oder/news/
innen
Der |
Wechsel Operator innerhalb der RegexMuster, nicht zwischen regex Mustern innerhalb re.compile
verwendet wird:
re.compile(r'^http://|/news/')
^
Hier gehört ^
nur zu http
(der erste Zweig).^http://
entspricht http://
am Zeichenanfang -OR- der /news
Zweig entspricht /news/
irgendwo innerhalb der Zeichenfolge. So werden alle Werte zugeordnet, die entwederhttp
am Anfang haben, oder /news/
innerhalb der Zeichenfolge.
Verwenden Sie 're.compile (r '^ http: // |/news /')' - wenn Sie eine ODER-Bedingung benötigen oder 're.compile (r '^ http: //.*/news/') 'zu' http' am Anfang und '/ news /' irgendwo in der Zeichenfolge. –
Nein! Ich möchte UND Zustand. nicht ODER – user6575792
Großartig, fügte ich beide Lösungen hinzu, aber ich sehe, dass ich recht hatte, als ich mich entschied, von Anfang an auf der UND-Bedingung zu verweilen. –