Aslında bu lookarounds ile mümkündür. Yerine:
href="(.*)">
İstediğiniz
(?<=href=").*(?=">)
Şimdi bu uygun (ve bu nedenle bir grup olarak ele 0) bir .*
o href="
öncesinde ve ">
takip edecektir. Ben çok gerçekten yerine açgözlü .*?
yerine, yani isteksiz gerektiğini sanıyorum unutmayın.
---A--Z---A--Z----
^^^^^^^^^^^
A.*Z
Her durumda, bu PHP'nin preg
PCRE'nin gibi görünüyor, bu yüzden lookarounds desteklemelidir.
regular-expressions.info links
- Lookaround
- Flavor comparison
- PHP'nin
preg
fonksiyonlar PCRE lezzet uygulamak.
- PCRE:
(?=regex)
(pozitif ileri yönlü): VAR
(?<=text)
(pozitif Geriye bakan): Sabit + münavebe
Demonstration
<?php
$haystack = '<a href="/foo.php">Go To Foo</a><a href="/bar.php">Go To Bar</a>';
$needle = '/(?<=href=").*?(?=">)/';
preg_match_all($needle,$haystack,$matches);
print_r($matches);
?>
Running this on ideone.com üretir:
Array
(
[0] => Array
(
[0] => /foo.php
[1] => /bar.php
)
)
Related questions
Bunlar çoğunlukla Java, ancak regex kısmı lookarounds / onaylamaları kullanarak kapsar: