Я немного неуверен в том, каков твой вопрос. Чтобы соответствовать "foo" или "bar", вы просто хотите "foo|bar"
для вашего паттерна. Если вы хотите сделать это со списком строк, вы, вероятно, захотите проверить каждую строку отдельно - вы могли бы присоединиться сначала к строкам и проверить , что , но я не уверен, что это будет очень полезно. Если вы хотите получить точный текст, соответствующий вашему шаблону, вы должны заключить шаблон в круглые скобки - например, "([fg]oo|[bt]ar)"
, что будет соответствовать «foo», «goo», «bar» или «tar», - затем используйте Groups
свойство объекта Match
для извлечения этих захватов, так что вы можете точно определить, какое слово соответствует. Groups[1]
- это первое захваченное значение (то есть значение в первом наборе скобок в вашем шаблоне). Groups[0]
- это весь матч. Вы также можете назвать ваши снимки - "(?<word>[fg]oo|[bt]ar)"
- и обращаться к ним по имени - Groups["word"]
. Я бы рекомендовал прочитать документацию по элементам языка регулярных выражений .
Что касается очистки входных данных, то нет входных данных, которые "сломали бы" регулярное выражение. Это может помешать совпадению, но это действительно своего рода регулярные выражения, не так ли?