Регулярное выражение, извлекающее из текста участок, ограниченный кавычками, не реагируя на кавычки закрытые бекслешем.
(?s)(?<!\)"((?:(?<=\)"|[^"]++)*)(?<!\)"
|
|
Webmoney Z163628999150, R617151845974
|
Для любого языка, кмеющего работать с регулярными выражениями
Я пробую использовать выражение в PHP, но оно дает ошибку.
if (preg_match ((?s)(?<!\)"((?:(?<=\)"|[^"]++)*)(?<!\)", $exp, $ok)) {
или так
if (preg_match ("(?s)(?<!\)"((?:(?<=\)"|[^"]++)*)(?<!\)", $exp, $ok)) {
Еще у меня выражение усложняется тем, что кавычки в тесте могут быть как одинарные, так и двойные...
aaaa "aaaaa" aaaaa
aaaa 'aaaaa' aaaaa
Пожалуйста помогите с решением
$str="aaaa \"str1\" aaaaa aaaa 'str2' aaaaa";
$pattern = '/[\'"](.*?)["\']/';
preg_match_all ($pattern, $str, $matches);
print_r ($matches);
Нисал на коленках, поэтому пришлось пожертвовать проверкой на наличие бекслешей и использование одинарных кавычек внутри двойных и наоборот.
13:26
Для чего он написан? пхп? пёрл? шел?