2016-06-17 4 views
0

У меня проблема с регулярным выражением. Попытка удалить строки в тексте начиналась с «(глава 1)», но она не работает.php regexp как удалить строки после подстроки

$line = preg_replace('/(\(chapter.*$/', '', $line); 

Текст для образца:

(charter 1)sample text, sample text. 
(charter 2)sample text, sample text. 
(charter 3)sample text, sample text. 
+2

вы ищете 'chapter', но ваш образец текста имеет' charter' и ваш шаблон имеет незаконченный глоб '(' захвата группы, что делает для синтаксической ошибки regex –

+1

Женя, это многострочная строка или несколько отдельных строк? Также, каков ожидаемый результат для этой строки/каждой строки? Попробуйте ''/^ \ (чартер \ h + \ d + \) . */m'', если это многострочная строка. –

+0

Может быть '\ ((charter [^)] +) \). *'. https://regex101.com/r/wB1kC4/2 – chris85

ответ

0
$str = "(charter 1)sample text, sample text."; 
$str = preg_replace("#^\(charter \d*\)#", "", $str); 

// output: sample text, sample text. 
Смежные вопросы