Я пытаюсь получить матч шаблона для строки, как в следующем, чтобы преобразовать каждую строку в элемент списка <li>
:Regex начинается с й или х предваряющими или завершающим
-Give on result
&Second new text
-The third text
Another paragraph without list.
-New list here
В естественном языке: Матч каждую строки, начинается с -
и закончилась с новой строки знак \n
Я попытался следующий шаблон, который работает отлично:
/^([-|-]\w+\s*.*)?\n*$/gum
Конечно, мы можем написать это просто без квадратных скобок ^(-\w+\s*.*)?\n*$
, но для отладки я использовал его, как описано.
В приведенном выше примере, когда я заменяю второй -
с &
быть ^([-|&]\w+\s*.*)?\n*$
Это отлично работает слишком, и он mtaches на вторую строчку smaple строки. Тем не менее, я не смог сделать его совпадением -
с префиксом пробела или суффиксами с пробелом.
Я изменил строку выборки на:
- Give on result
&Second new text
-The third text
Another paragraph without list.
-New list here
и я попробовал следующую закономерность:
/^([-|\- |&| -]\w+\s*.*)?\n*$/gum
Однако она не смогла соответствовать любому суффиксом или префиксом -
с белым пространством.
Here are живой демо для оригинального рабочего шаблона:
'[- | -]' не имеет большого смысла. '[]' определяет класс символов. например «любой из символов внутри' [] 'может совпадать с одним символом в одном месте, поэтому вы говорите:« Это черта, тире или труба или тире ». –
Я думаю, что вы хотите' echo preg_replace ('/^- (. *?) $/m ','
@MarcB Спасибо за ваше замечательное объяснение. – SaidbakR