如果正则表达式不包含特定单词,如何匹配它?
Posted
技术标签:
【中文标题】如果正则表达式不包含特定单词,如何匹配它?【英文标题】:How match a regex if it does not contain a particular word? 【发布时间】:2011-10-02 04:08:25 【问题描述】:如果给定的字符串不只包含给定的单词(例如“any”),我想用 Python 或 javascript 编写一个正则表达式来匹配。
例如:
any
:不匹配AnY
:不匹配anyday
:匹配any day
:匹配blabla
:匹配
【问题讨论】:
我认为您需要更多示例。例如“Foobar”应该匹配吗? 【参考方案1】:类似这样的:
/(any)(.+)/i
【讨论】:
这仅匹配以“any”开头且至少有 4 个字符的单词。它不会匹配“blahblahblah”。 OP是否改变了你的问题?【参考方案2】:any.+
..还有一些文字来设置 30char 阈值
【讨论】:
这仅匹配以“any”开头且至少有 4 个字符的单词。它不会匹配“blahblahblah” lol 匹配“blahblah”不是我回答时的要求:) 查看编辑历史记录【参考方案3】:如果您还需要以“any”开头的单词,则可以使用否定前瞻
^(?!any$).*$
这将匹配除“any”之外的任何内容。
【讨论】:
【参考方案4】:为此目的在 javascript 中使用 string.match(regexp)
方法。请看下面的代码:
<script type="text/javascript">
var str="source string contains YourWord";
var patt1=/YourWord/gi; // replace YourWord within this regex with the word you want to check.
if(str.match(patt1))
//This means there is "YourWord" in the source string str. Do the required logic accordingly.
else
// no match
</script>
希望这会有所帮助...
【讨论】:
【参考方案5】:不使用正则表达式可能更有效,这也有效:
def noAny(i):
i = i.lower().replace('any', '')
return len(i) > 0
【讨论】:
+1。但是效率并不是选择一种方法而不是另一种方法的有效标准。正则表达式对于它们的绝大多数用途来说足够快。以上是关于如果正则表达式不包含特定单词,如何匹配它?的主要内容,如果未能解决你的问题,请参考以下文章