我有一个正则表达式如下:
^/[a-z0-9]+$
这与/hello或/hello123等字符串匹配。但是,我希望它排除一些字符串值,如/ignoreme和/ignoreme2。我已经尝试了一些变种,但似乎不能得到任何工作!我最近的一次尝试
/hello
/hello123
/ignoreme
/ignoreme2
^/(((?!ignoreme)|(?!ignoreme2))[a-z0-9])+$
i34xakig1#
下面是另一种方法(使用negative look-ahead):
^/(?!ignoreme|ignoreme2|ignoremeN)([a-z0-9]+)$
注意:只有一个捕获表达式:([a-z0-9]+) .
([a-z0-9]+)
ctehm74n2#
这应该可以做到:
^/\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);
fquxozlt3#
由于您希望排除这两个单词,因此需要一个变戏法:
^/(?!ignoreme$)(?!ignoreme2$)[a-z0-9]+$
现在,两个条件都必须为真(不允许使用 ignoreme 或 ignoreme2)才能匹配。
6tr1vspr4#
这将从搜索结果中排除所有包含 ignoreme 的行。当行中包含任何字符时,它也会非常有效
^((?!ignoreme).)*$
11dmarpk5#
这对我很有效:^((?!\ignoreme1\b)(?!\ignoreme2\b)(?!\ignoreme3\b).)*$
^((?!\ignoreme1\b)(?!\ignoreme2\b)(?!\ignoreme3\b).)*$
icnyk63a6#
我在python 3.x中使用机器学习管道make_column_selector来包含和排除 Dataframe 中的某些列。要排除^(?!(col 2|二氧化碳|第6栏)).*$
categoral_selector = make_column_selector(pattern = "(col2|co4|col6)") numeric_selector = make_column_selector(pattern = "^(?!(col2|co4|col6)).*$")
vof42yt17#
更简单:
re.findall(r'/(?!ignoreme)(\w+)', "/hello /ignoreme and /ignoreme2 /ignoreme2M.")
您将获得:
['hello']
7条答案
按热度按时间i34xakig1#
下面是另一种方法(使用negative look-ahead):
注意:只有一个捕获表达式:
([a-z0-9]+)
.ctehm74n2#
这应该可以做到:
您可以添加尽可能多的忽略单词,下面是一个简单的PHP实现:
fquxozlt3#
由于您希望排除这两个单词,因此需要一个变戏法:
现在,两个条件都必须为真(不允许使用 ignoreme 或 ignoreme2)才能匹配。
6tr1vspr4#
这将从搜索结果中排除所有包含 ignoreme 的行。当行中包含任何字符时,它也会非常有效
11dmarpk5#
这对我很有效:
^((?!\ignoreme1\b)(?!\ignoreme2\b)(?!\ignoreme3\b).)*$
icnyk63a6#
我在python 3.x中使用机器学习管道make_column_selector来包含和排除 Dataframe 中的某些列。要排除^(?!(col 2|二氧化碳|第6栏)).*$
vof42yt17#
更简单:
您将获得: