RegEx表示字符串不包含两个不同的字符串

chr*_*s n 7 regex

好吧,那些知道正则表达的大师!

如何使用reg ex搜索字符串以确保它不包含两个不同的字符串.

示例:假设我想确保"FileNTile"不包含文件或平铺

谢谢

cnorr

bob*_*nce 11

^((?!File|Tile).)*$
Run Code Online (Sandbox Code Playgroud)

但这不太可能是一个好主意.几乎每个编程环境都有一个更清晰,更有效的字符串匹配方法.(例如Python的:if 'File' not in s and 'Tile' not in s)

此外,并非所有正则表达式实现都具有前瞻性.例如.它在JavaScript中不可靠.并且取决于模式(多行,dotall标志)可能存在换行问题.


Pet*_*ter 0

这取决于语言。最简单的方法(概念上):搜索两者,并确保两者都无法匹配。在红宝石中:

s = "FileNTile"
(s !~ /File/) and (s !~ /Tile)  # true if s is free of files and tiles.
Run Code Online (Sandbox Code Playgroud)