RegEx для строки, которая НЕ содержит две разные строки - PullRequest
7 голосов
/ 29 января 2010

Хорошо, вы, гуру, которые знают Regex!

Как использовать reg ex для поиска строки, чтобы убедиться, что она не содержит ни одной из двух разных строк.

Пример: скажем, я хочу убедиться, что «FileNTile» не содержит файл или плитку

Спасибо

cnorr

Ответы [ 2 ]

11 голосов
/ 29 января 2010
^((?!File|Tile).)*$

Это вряд ли будет хорошей идеей. Практически в каждой среде программирования будет более понятный и эффективный подход к сопоставлению строк. (например, Python: if 'File' not in s and 'Tile' not in s)

Также не все реализации регулярных выражений имеют заглядывание вперед. например. это не надежно в JavaScript. Кроме того, могут возникнуть проблемы с символами новой строки в зависимости от режима (многострочный, флаги точек).

0 голосов
/ 29 января 2010

Это зависит от языка. Самый простой способ (концептуально): найдите оба и убедитесь, что оба не совпадают. В рубине:

s = "FileNTile"
(s !~ /File/) and (s !~ /Tile)  # true if s is free of files and tiles.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...