У меня есть следующая строка:
- Меня зовут Марк, я живу в столице Испании и мне нравится программировать на компьютере
Я ожидаю, что группыбыть:
- G1: Марка
- G2: Испания
- G3: компьютеры
в том случае, если «капитал» может быть«состояние» или какой-либо другой фиксированный параметр или пустой, то же самое относится и к «программированию»
Я хочу иметь необязательные части, поэтому все совпадения, которые я ожидал бы:
Меня зовут Марк, я живу в столице Испании, и мне нравится программирование на компьютерах
Меня зовут Марк, я живу в столице Испании, и мне нравятся компьютеры
Меня зовут Марк и я живу в столице Испании
Меня зовут Марк и я живу в Испании
До сих пор я использовал следующее регулярное выражение:
My name is '([^']+?)' and I live in ([^']+?)(?: capital|)(?: and I like ([^']+?)|)(?: programming| reading|)
Я использую его в SpecFlow для целей автоматизации, и ОНО РАБОТАЕТ, но когда я использую его в любом тесте регулярных выраженийэто выглядит не очень хорошо: https://regex101.com/r/Ro0rHP/1
Кроме того, это как-то делает интеграцию пользовательского интерфейса между Visual Studio 2019 и SpecFlow некорректно для следующих шагов после этого.
Теперь яЯ, вероятно, ищу некоторые альтернативы этому регулярному выражению, которое работает в тестерах регулярных выражений, я боролся с этим некоторое время.