Перевод рабочего регулярного выражения для матча Twig - PullRequest
0 голосов
/ 03 октября 2019

У меня работает регулярное выражение, которое я не могу использовать с совпадением Twig. По сути, мне нужно подтвердить, содержит ли сообщение где-либо "@firstname lastname ". Сообщение может иметь возвраты, многократные совпадения и т. Д. Регулярное выражение должно соответствовать всему сообщению, если в нем где-то существует "@firstname lastname ".

Это регулярное выражение, с которым я здесь работал: https://regexr.com/

/.+?(?=@)@[A-z]+ [A-z]+ (.*)/gs

И это сработало: Это набор текста, окружающий фамилию @firstname и т. Д.

Что я пробовал:

{%- set action -%}
    Twig needs to handle the set in this format @firstname lastname
    for what I need to work
{%- endset -%}

И:

{% set regex = '/.+?(?=@)@[A-z]+ [A-z]+ (.*)/gs' %}

Тогда:

{% if action matches regex %}
    Working
{% else %}
    Not working
{% endif %}

То, что я получаю: Not Working

1 Ответ

0 голосов
/ 04 октября 2019

Между lastname и for нет пробела, также g недопустим модификатор в PHP

{% set regex = '/.+?(?=@)@[A-z]+ [A-z]+(.*)/s' %}

демо

...