Мне нужен результат регулярного выражения, который не включает подстроку в начале и в конце сопоставленного шаблона - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть шаблон, которому нужно соответствовать, это всегда дата "_YYYYMMDD.". Однако я не хочу включать "_" и "." в результате. У меня есть шаблон регулярных выражений, который успешно соответствует выше. Слишком сложно включить сюда, потому что мне пришлось бы писать от руки и все испортить.

Достаточно сказать, что у меня есть шаблон:

[_](lots of stuff in the middle)[.]

Работает нормально, но я не хочу включать "_" и "."

Любые ответы приветствуются. Спасибо!

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Для сопоставления подчеркивания и точки с шаблоном и не включения его в полностью соответствующий текст, вам нужно будет использовать обходные пути в шаблоне регулярных выражений.Следующее регулярное выражение будет соответствовать дате, которой предшествует _, за которой следует .

(?<=_)\d{8}(?=\.)

Regex Demo

Дополнительно, если вы хотитечтобы захватить часть года, месяца и даты в свои собственные группы захвата, вы можете использовать это регулярное выражение и захватить часть года из группы 1, месяц из группы 2 и дату из группы 3,

(?<=_)(\d{4})(\d{2})(\d{2})(?=\.)

Демо с разными частями даты в свои группы

0 голосов
/ 18 апреля 2019

Самый простой способ - вырезать первый и последний символы из результата. Вы можете сделать это либо по длине строки:

result="${result:1:${#result}-2}"

(или result="${result:1:8}", поскольку длина будет постоянной)

Или конкретным символом:

result="${result#_}"
result="${result%.}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...