Регулярное выражение для соответствия нескольким фильтрам - PullRequest
0 голосов
/ 19 июня 2020

Итак, я хочу захватить разные фильтры, например, я хочу отфильтровать то, что у меня есть эти фильтры (Дата, Имя, ID). Я хочу выполнить поиск между 2 датами и именем, поэтому я пишу Date: 11/11 / 11.12.2008 Имя: Андрей. Это то, что у меня есть прямо сейчас ->

(Date:((((([13578]|0[13578]|1[02])[\/](0[1-9]|[1-9]|1[0-9]|2[0-9]|3[01]))|(([469]|0[469]|11)[\/]([1-9]|1[0-9]|2[0-9]|3[0]))|((2|02)([\/](0[1-9]|1[0-9]|2[0-8]))))[\/](19([6-9][0-9])|20([0-9][0-9])))|((02)[\/](29)[\/](19(6[048]|7[26]|8[048]|9[26])|20(0[048]|1[26]|2[048]))))(-)?((((([13578]|0[13578]|1[02])[\/](0[1-9]|[1-9]|1[0-9]|2[0-9]|3[01]))|(([469]|0[469]|11)[\/]([1-9]|1[0-9]|2[0-9]|3[0]))|((2|02)([\/](0[1-9]|1[0-9]|2[0-8]))))[\/](19([6-9][0-9])|20([0-9][0-9])))|((02)[\/](29)[\/](19(6[048]|7[26]|8[048]|9[26])|20(0[048]|1[26]|2[048]))))?|Name|ID)

Он захватывает только один фильтр, а не все. Мне нужно понять, как добавить логическое И в регулярном выражении

Строка, которая должна соответствовать -> « Дата: 11.11.2008 - 12.11.2008 Имя: Эндрю ", " Дата: 11.11.2008 - 12.11.2008 Имя: Эндрю ID: 20"," Имя: Эндрю"

Строка, которая соответствует прямо сейчас - > " Дата: 11.11.2008 - 12.11.2008 "

1 Ответ

1 голос
/ 19 июня 2020

Я не уверен, что понял вашу проблему, поэтому я создал регулярное выражение, которое соответствует нужной строке, независимо от дат или имен:

Date: (\d{2}\/\d{2}\/\d{4})-(\d{2}\/\d{2}\/\d{4})\sName:([a-zA-Z]+)

Протестируйте здесь .

Можете ли вы отредактировать свое сообщение и привести больше примеров строк, которые должны совпадать, и строк, которые не должны совпадать?

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