Bir RegEx'in dizenin başına geri düşmesi ve eşlemeye yeniden başlaması mümkün mü?RegEx'in başlangıcına geri dönme RegEx
İşte bu yüzden soruyorum. Aşağıdaki dize verildiğinde, konu dizesinde oluşma sırasına bakılmaksızın ve yalnızca konu dizesinde tüm alt dizeler mevcutsa, alt sıraları black
, red
, blue
ve green
yakalamak istiyorum. Bir yoksa
$str ='blue-ka93-red-kdke3-green-weifk-black'
Yani, aşağıda dizelerinin tamamına ait, RegEx acaba
'blue-ka93-red-kdke3-green-weifk-black'
'green-ka93-red-kdke3-blue-weifk-black'
'blue-ka93-black-kdke3-green-weifk-red'
'green-ka93-black-kdke3-blue-weifk-red'
(bu sırayla) black
, red
, blue
ve green
çekmeligüvenli Bir yakalama grubunu eşleştirmenin yolu daha sonra dizenin başına dönecek ve bir sonraki yakalama grubunu bulacaktır. ^.*(?=(black))^.*(?=(red))^.*(?=(blue))^.*(?=(green))
gibi bir işin çalışacağını umuyorum ama elbette ^
ve lookaheads bu şekilde davranmıyor.
Böyle bir RegEx oluşturmak mümkün mü?
Bağlam için, PHP'de RegEx'i kullanacağım.
: (?. = * (Siyah))?. [ '^ (?. = * (Kırmızı)) (?. = * (Mavi)) (= * (yeşil)) '] (https://regex101.com/r/qB0bR5/1)? Bu, tüm bu anahtar kelimelerin dizede olmasını gerektirir. –
@ WiktorStribiżew Yep, aynen böyle, bir cevap olarak at ve kabul edeceğim, teşekkürler! – DelightedD0D
@ WiktorStribiżew: Lütfen cevabınızdaki her adımı detaylandırın. –