我有一个正则表达式如下:
^/[a-z0-9]+$
它匹配/hello或/hello123这样的字符串。
但是,我希望它排除一些字符串值,如/ignoreme和/ignoreme2。
我尝试了一些变种,但似乎不能得到任何工作!
我最近一次微弱的尝试是
^/(((?!ignoreme)|(?!ignoreme2))[a-z0-9])+$
任何帮助都将不胜感激:-)
我有一个正则表达式如下:
^/[a-z0-9]+$
它匹配/hello或/hello123这样的字符串。
但是,我希望它排除一些字符串值,如/ignoreme和/ignoreme2。
我尝试了一些变种,但似乎不能得到任何工作!
我最近一次微弱的尝试是
^/(((?!ignoreme)|(?!ignoreme2))[a-z0-9])+$
任何帮助都将不胜感激:-)
当前回答
这招对我很管用: ^ ((? ! \ ignoreme1 \ b) (? ! \ ignoreme2 \ b) (? ! \ ignoreme3 \ b)) *美元
其他回答
这招对我很管用: ^ ((? ! \ ignoreme1 \ b) (? ! \ ignoreme2 \ b) (? ! \ ignoreme3 \ b)) *美元
这里还有另一种方式(使用消极的前瞻):
^/(?!ignoreme|ignoreme2|ignoremeN)([a-z0-9]+)$
注意:只有一个捕获表达式:([a-z0-9]+)。
这在python3中对我有用。make_column_selector用于从数据帧中包含和排除某些列。排除^(?!(col2|co4|col6)).*$
categoral_selector = make_column_selector(pattern = "(col2|co4|col6)")
numeric_selector = make_column_selector(pattern = "^(?!(col2|co4|col6)).*$")
这将排除搜索结果中包含ignoreme的所有行。它也将工作得很好,当有任何字符在一行
^((?!ignoreme).)*$
这应该做到:
^/\b([a-z0-9]+)\b(?<!ignoreme|ignoreme2|ignoreme3)
你可以添加尽可能多的被忽略的单词,这是一个简单的PHP实现:
$ignoredWords = array('ignoreme', 'ignoreme2', 'ignoreme...');
preg_match('~^/\b([a-z0-9]+)\b(?<!' . implode('|', array_map('preg_quote', $ignoredWords)) . ')~i', $string);