Регулярное выражение для поиска нецензурных слов, если они не футбольные команды - PullRequest
0 голосов
/ 13 января 2012

В AS3 я создал красивую процедуру фильтра ругательства, которая импортирует список регулярных выражений для ругательств и объединяет их в одно регулярное выражение. Тем не менее, у меня есть проблемы с футбольными командами, а именно с ARSENAL и SCUNTHORPE.

Есть ли способ в регулярном выражении блокировать ругательства , если они не завершат слова, которые будут выше? Я попробовал следующее с ARSENAL, но он не работал должным образом:

/arse[^(nal)]/gi

Проблема в том, что я не могу заключить в скобки буквы "nal", потому что он видит скобки как символы, а не как блок. Похоже, ожидается, что по крайней мере один дополнительный символ после «зад» для работы. Могу ли я сделать так, чтобы это позволяло одному, а не другому? Как я могу сгруппировать буквы и сказать «нет»?

РЕДАКТИРОВАТЬ: я нашел в другом месте в стеке некоторые разговоры о "негативных взглядах", но не совсем понял, как я мог сделать это для этих двух вариантов использования ... Любые идеи?

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Просто используйте слово якорь \b: \bswearwordhere\b.

Конечно, вы должны были бы сделать любой обходной путь, который эти ** изобретут, чтобы обойти ваши f - * "- ng правила, хе.

1 голос
/ 13 января 2012

Я не знаю конкретно о ActionScript, но в большинстве движков Regex вы можете использовать

негативный взгляд: ?!

отрицательный взгляд сзади: ?<!

Так что для Арсенала:

/arse(?!nal)/gi 

И Сканторп или sHAPPYhorp:

/HAPPY(?<!sHAPPY)(?!horp)/gi 

И Scunthorp будет похож на sHAPPYhorp, оставленный как задание для читателя.

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