使用Visual Studio 2013正则表达式查找-如何使多个前缀无效

Using Visual Studio 2013 regular expression find - how to invalidate multiple prefixes

本文关键字:何使多 前缀 无效 查找 Visual Studio 2013 正则表达式 使用      更新时间:2023-09-26

我试图在一堆c#, XML和JS文件中找到"符号"。我的项目很大,在8000多行中搜索"所有"结果,所以我试图消除其中的一些。

例如,我不想匹配"call"或"balloon"或"balloon"(这些都是UX元素样式)。

查看使用正则表达式MSDN页面(http://msdn.microsoft.com/en-us/library/vstudio/2k3te2cs%28v=vs.110%29.aspx)我发现了如何在其中一个上无效,但我不知道如何在多个上做到这一点,并使其不区分大小写。

我开始使用:

(?!c)all

那过滤掉了呼叫之类的东西但是我不能让一个过滤掉多个

(?!b|c)all

是我一直在玩的形式,试图让它忽略气球。理想情况下,我可以这样做(警告!

(?!b|c|B|C|)all
如果有人能给我指出正确的方向,那就太好了。我没有寻找所有被空格包围的原因是因为我不知道我要寻找的引用是否会是:
.All
.all
("All")
(all)

等…

你试过: (aA)[我][我]' b

锚定在单词/非单词边界的任何版本的"all"或"all"

这是另一个参考…匹配特定字符串

的正则表达式

以下正则表达式:(?<!(b|c))all(带IgnoreCase标志)

输入:ball all stall .all( "ALL"

有以下匹配项:ball [all] st[all] .[all]( "[ALL]"

我认为你是在正确的轨道上环顾,但你想使用一个字符类。(更多信息:http://www.regular-expressions.info/charclass.html)

有方便的简写字符类,如'w,来表示常用的类。例如,'w表示所有字母数字字符,是[A-Za-z0-9_]的简写。

'b表示"词边界",或者换句话说,字符串的开始/结束以及单词字符和非单词字符之间的边界。它的长度为零,不会匹配任何字符。

下面是一些分别使用词边界、正打量和负打量的例子:

'b[aA][lL][lL]'b

(?<=[^'w])[aA][lL][lL](?=[^'w])

(?<!'w)[aA][lL][lL](?!'w)

基本上,这些将找到由非字母数字字符包围的不区分大小写的"all"匹配。如果你想要排除某些周围的字符,你可以用你自己的字符类替换'w(例如,要排除周围的引号,使用[A-Za-z0-9_"]而不是'w)。