Regex 如何排除正则表达式中的某个单词?
我正在使用这个表达式,它非常适合我的需要:Regex 如何排除正则表达式中的某个单词?,regex,word,Regex,Word,我正在使用这个表达式,它非常适合我的需要: .*(cq|conquest).* 它返回任何带有字母“cq”或“conquest”的单词/短语/句子/等。然而,从这些比赛中,我想排除所有包含“征服力量”一词的比赛 示例: 这里有些征服(应该匹配) 另一个cq在这里有一些征服力(应该匹配) 过多的cq或征服能力不好(不应匹配) 如何对上面的正则表达式执行该操作?它必须只有一个正则表达式,否则我正在使用的程序(高级战斗跟踪器)将创建两个不同的选项卡。从您的列表中,我知道您希望匹配所有包含“cq”
.*(cq|conquest).*
它返回任何带有字母“cq”或“conquest”的单词/短语/句子/等。然而,从这些比赛中,我想排除所有包含“征服力量”一词的比赛
示例:
(应该匹配)这里有些征服
(应该匹配)另一个cq在这里有一些征服力
(不应匹配)过多的cq或征服能力不好
^([^p]|p(?!ower))*(cq|conquest)([^p]|p(?!ower))*$
()如果您想要匹配任何包含
“征服”
或“cq”
的字符串,但如果字符串包含“征服力量”
,则正则表达式为
^(?!.*conquest power).*?(?:cq|conquest).*
以上内容将尝试从字符串的开头到行尾进行匹配,如果您想从每行的开头进行匹配,请打开多行模式(如果可用)-将(?m)
添加到正则表达式的开头可以做到这一点
如果要跨换行符进行匹配,请将
更改为[\s\s]
,或打开单线
模式(如果可用)
你说“我想匹配‘cq’或‘征服’”,但同时又说“我想让正则表达式提取这一行”,这让人们感到困惑
我假设你真的不想只匹配“cq”或“征服”,你想匹配包含“cq”或“征服”的字符串/行(?)。可能
(?!*power)。*(cq |征服)。*
请更具体地说明你想排除什么,不想排除什么。你说你想排除“权力”一词,并给出一个例子(“征服权力”),但你说你只想排除确切的“征服权力”一词。我想匹配“cq”或“征服”,但如果短语是“征服权力”,那么我不想用我正在使用的程序(ACT)来提取行。@EdgeTrio是的,我的答案中的regexp就是这样做的。请尝试使用regexpal url来演示一些示例。@raypixar可以,但该regex不满足字符串必须包含“cq”或“conquest”的要求。