Сопоставление с шаблоном с использованием регулярных выражений с ограничением подстроки - PullRequest
0 голосов
/ 07 января 2020

Я работаю над сопоставлением с образцом в строке сообщений для символа *. Чтобы я мог определить любую подстроку между двумя * символами.

Я могу сделать это, используя приведенное ниже регулярное выражение

[*]((?s).*?)[*]

Это регулярное выражение возвращает мне все ожидаемое Результаты, которые я хотел получить, кроме этого, также учитывают пару *, если два символа * вместе (например: Test**ing).

Мне нужно избегать этого случая при сопоставлении с шаблоном.

В любом случае, я могу добавить некоторое условие, пока регулярное выражение совпадает, если за * символом следует другой *, тогда игнорировать это совпадение и возвращать совпадение, только если два символа * имеют другой символ / символы между ними.

Например:

**test -> Это не должно возвращать никакого совпадения

***test* -> Оно должно возвращаться * test *

***testing* message *additional* -> Должен вернуться * test * и * дополнительные *

Дайте мне знать, если что-то неясно.

1 Ответ

0 голосов
/ 07 января 2020

s не способ получить строку в регулярном выражении. Мы используем [a-z]. Чтобы удовлетворить все верхние и нижние регистры между звездочками, используйте:

[*](([A-Za-z]+).*?)[*]

См. здесь для результатов, которые это дает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...