Ben bir dize var:
Bu metin, "Sizin Dengesi 0,10 $ sol", sonu 0
Nasıl çift tırnak arasındaki dize ayıklamak ve (çift tırnak işaretleri olmadan) sadece metin olabilir:
Sizin Denge 0,10 $ bıraktı
I preg_match_all()
ama hayır şans ile denedim.
Sürece formatı aynı kalır gibi düzenli ifade kullanarak bunu yapabilirsiniz. "([^"]+)"
desen maç olacak
[^"]+
etrafında parantez bu bölümü ayrı bir grup olarak iade edilmesi anlamına gelir.
<?php
$str = 'This is a text, "Your Balance left $0.10", End 0';
//forward slashes are the start and end delimeters
//third parameter is the array we want to fill with matches
if (preg_match('/"([^"]+)"/', $str, $m)) {
print $m[1];
} else {
//preg_match returns the number of matches found,
//so if here didn't match pattern
}
//output: Your Balance left $0.10
Herkes tam özellikli bir dizge ayrıştırıcı için avcılık için, bu deneyin:
(?:(?:"(?:\\"|[^"])+")|(?:'(?:\\'|[^'])+'));
Preg_match'in kullanın:
$haystack = "something else before 'Lars\' Teststring in quotes' something else after";
preg_match("/(?:(?:\"(?:\\\\\"|[^\"])+\")|(?:'(?:\\\'|[^'])+'))/is",$haystack,$match);
İade:
Array
(
[0] => 'Lars\' Teststring in quotes'
)
Bu tek ve çift tırnaklı dize fragmanları ile çalışır.