C # RegEx совпадают с началом строки и началом слова одновременно - PullRequest
4 голосов
/ 06 мая 2009

скажем, есть шесть строк

  1. "abcd bbb ccc"
  2. "abce bbb ccc"
  3. "abcf bbb ccc"

  4. "aaa abcd ccc"

  5. "aaa abce ccc"
  6. "aaa abcf ccc"

Пользователь вводит выражение "<abc[!e]"

Это выражение переводится в следующее регулярное выражение "^ abc [^ e]"

Переведенное регулярное выражение будет успешно соответствовать строкам 1 и 3

Если бы я хотел сопоставить строки 4 и 6, выражение должно быть переведено в "\ Wabc [^ e]" (это также совпадало бы с пробелом перед abc chars :(, что не очень хорошо)

К сожалению, введенное пользователем выражение необходимо преобразовать в регулярное выражение, которое будет соответствовать как 1,3, так и 4,6 строкам.

Есть ли способ перевести введенное пользователем выражение в регулярное выражение, которое бы объединяло выражения "^ abc [^ e]" и "\ Wabc [^ e]" (в идеале второе выражение не должно совпадать с первым пробелом :))

1 Ответ

4 голосов
/ 06 мая 2009

Perl знает границу слова нулевой ширины \ b:

\babc[^e]

Я думаю, что это должно работать в большинстве движков регулярных выражений в стиле Perl.

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