Булева логика в одном регулярном выражении - возможно? - PullRequest
3 голосов
/ 12 ноября 2009

Можем ли мы поместить в одно регулярное выражение логическую логику: строка начинается с «a» или «b». Вопрос вызван с помощью утилиты FileHelpers, которая имеет текстовое поле «Выбор условия записи» для «ExcludeIfMatchRegex». Утилита написана на C #. ^ a - работает, только не как записать ^ a ИЛИ ^ b

Ответы [ 4 ]

7 голосов
/ 12 ноября 2009

используйте функцию | (труба):

^a|^b

Или в расширенном формате:

^a   # starts with an A
|    # OR
^b   # starts with a B
5 голосов
/ 12 ноября 2009

Как насчет этого: ^ [ab]

3 голосов
/ 12 ноября 2009

Трудно понять вас, но ... если вы ищете совпадение, если строка начинается с "a" или "b", и в противном случае вы можете сделать это:

^(a|b)(.+)$

Затем, когда вы получите группы совпадений, первая группа будет либо "a", либо "b", а вторая группа будет остальной частью строки.

2 голосов
/ 12 ноября 2009

Специальная конструкция (?ifthen|else) позволяет создавать условные регулярные выражения. Если часть if имеет значение true, то механизм регулярных выражений попытается сопоставить часть then. В противном случае вместо него будет сделана попытка else . Синтаксис состоит из пары круглых скобок. Открывающая скобка должна сопровождаться знаком вопроса, за которым сразу следует часть if, после которой следует часть then. Эта часть может сопровождаться вертикальной чертой и другой частью. Вы можете опустить часть else и вертикальную черту вместе с ней.

Проверьте условия страницу на regex.info для более подробной информации.

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