([^\W\dA-Z && (I|X|L|V|\.)])\1{2}
作品http://regex101.com/r/xB5sT0/1查找信三胞胎除了列出的单词
如何使除\b(Fuss|Mass|Bloss|Gross)
案件工作?
所有列出的德语单词可以在单词中间为好,或以小写字母(fuss|mass|bloss|gross)
开始
我不想匹配composita的话就像Fusssoldat,因为我知道一切都确定与他们,因为fuss + soldat是有道理的。
([^\W\dA-Z && (I|X|L|V|\.)])\1{2}
作品http://regex101.com/r/xB5sT0/1查找信三胞胎除了列出的单词
如何使除\b(Fuss|Mass|Bloss|Gross)
案件工作?
所有列出的德语单词可以在单词中间为好,或以小写字母(fuss|mass|bloss|gross)
开始
我不想匹配composita的话就像Fusssoldat,因为我知道一切都确定与他们,因为fuss + soldat是有道理的。
([^\W\dA-Z && (I|X|L|V|\.)])\1(?<!(?i)fuss|mass|bloss|gross)\1
我以这种方式找到了解决方案:
([^\W\dA-Z && (I|X|L|V|\.)])
\1
(?<!(?i)fuss|mass|bloss|gross)
您可以使用丢弃技术,该技术包括将丢弃模式放在由管道分割的正则表达式的开头(正则表达式OR),并在末尾使用捕获组。像下面这样:
discard patt 1 | discard this too | another discard pattern | (keep this)
所以,你如果你可以做这样的事情:
\b(?:Fuss|Mass|Bloss|Gross)|([^\W\dA-Z && (I|X|L|V|\.)])\1{2}
然后访问捕获组抓住你的内容。
如果您使用PCRE
(Perl兼容正则表达式)正则表达式,您可以使用(*SKIP)(*FAIL)
标志放弃匹配的模式。像:
\b(?:Fuss|Mass|Bloss|Gross)(*SKIP)(*FAIL)|([^\W\dA-Z && (I|X|L|V|\.)])\1{2}
如果您想了解更多关于这招,你可以看看这个优秀的线程:
当然,我可以使用'|',但唯一的问题是分组。我不使用'PCRE'。已测试'\ b(?:Fuss | Mass | Bloss | Gross)|([^ \ W \ dA-Z &&(I | X | L | V | \。)])\ 1 {2}'on http:/ /regex101.com/r/xB5sT0/1 - 没有工作,它应该忽略了Fusssoldat,只发现了Dusssoldat,但失败了。感谢您的详细解答。 – gasyoun 2014-10-04 18:14:21
请[此](http://regex101.com/r/bD3gO9/2)做你想做的事吗? – 2014-10-04 17:49:18
事实上,它可以在网络上运行,但是由于Perl序列不能用于Notepad ++或EmEditor。我想这样EditPlus。这些是我的主要3位编辑,不想添加第4位。 – gasyoun 2014-10-04 20:49:33