Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio正则表达式''; MSVS:regex在哪里?_Visual Studio_Regex - Fatal编程技术网

Visual studio Visual Studio正则表达式''; MSVS:regex在哪里?

Visual studio Visual Studio正则表达式''; MSVS:regex在哪里?,visual-studio,regex,Visual Studio,Regex,我有一些代码试图与MSVS2008中的正则表达式相匹配,但我无法找到它的正则表达式。举一个经典的例子: colou?r …这是一个匹配颜色或颜色的正则表达式。这与MSV中的两者都不匹配。参考帮助文件,我找不到? 这没什么大不了的-可以通过交替进行模拟: colo(u|)r 但是,我得到了“分组表达式丢失”)。。。这是。。。不奇怪的是,MSV有这些带花括号的备用组(我不确定为什么…): colo{u|}r 这给了我一个完全不同的错误“模式中的语法错误”。。。我没看到。 基本上,我如何做??我

我有一些代码试图与MSVS2008中的正则表达式相匹配,但我无法找到它的正则表达式。举一个经典的例子:

colou?r
…这是一个匹配
颜色
颜色
的正则表达式。这与MSV中的两者都不匹配。参考帮助文件,我找不到

这没什么大不了的-可以通过交替进行模拟:

colo(u|)r
但是,我得到了“分组表达式丢失”)。。。这是。。。不奇怪的是,MSV有这些带花括号的备用组(我不确定为什么…):

colo{u|}r
这给了我一个完全不同的错误“模式中的语法错误”。。。我没看到。 基本上,我如何做
?我的实际输入没有颜色/颜色那么简单,否则我会用
(color | color)
来伪造它。我想这可能是假的,但这是一种迟钝的方式


那我们试试交替吧。。。 好吧,我还是做不到,即使是交替的。我有以下两个正则表达式:

^[A-Z]+\t[0-9]+\t[^\t]+ ^[A-Z]+\t[0-9]+\t[^\t]+\t[^\t]+ ^[A-Z]+\t[0-9]+\t[^\t]+ ^[A-Z]+\t[0-9]+\t[^\t]+\t[^\t]+ 这两行分别与我的文本相匹配。(第一个匹配与第二个匹配的部分行。)

我的输入是货币信息行:

BZD 084 Belize dollar CAD 124 Canadian dollar CDF 976 Franc Congolais CHE 947 WIR euro (complementary currency) CHF 756 Swiss franc CHW 948 WIR franc (complementary currency) CLF 990 Unidad de Fomento (funds code) BZD 084伯利兹元 加拿大元124加元 976克朗刚果法郎 CHE 947 WIR欧元(补充货币) 756瑞士法郎 CHW 948瑞士法郎(补充货币) CLF 990 Unidad de Fomento(基金代码) (例如,WIR欧元和(补充货币)之间有标签,但它们并不总是在那里。)

从逻辑上讲,它应该遵循这一原则进行组合

^[A-Z]+\t[0-9]+\t[^\t]+ ^[A-Z]+\t[0-9]+\t[^\t]+\t[^\t]+ ^[A-Z]+\t[0-9]+\t[^\t]+ ^[A-Z]+\t[0-9]+\t[^\t]+\t[^\t]+ …你得到。。。 ^[A-Z]+\t[0-9]+\t([^\t]+[^\t]+\t[^\t]+\t[^\t]+)
…不知何故,它似乎相当于第一组中的第二个表达式。

我们自己不久前就写过这个。基本上,VisualStudio的正则表达式实现是非常不标准的,并且没有直接的方法来完成通常使用“
”所做的事情。您必须使用
{color | color}
表达式。

Visual Studio中的正则表达式查找不支持?。请参阅MSDN上的。您最好的选择可能是交替字符

此操作有效:

colo(u)|()r
对于您的实际示例,这将匹配每一行:

^[A-Z]+:b[0-9]+:b[^\t]+(\t[^\t]+)|()

你试过右边最长的公共路径吗

例如,对于颜色和颜色,它将是:

colo(ur|r)
^[A-Z]+\t[0-9]+\t{[^\t]+|[^\t]+\t[^\t]+}
对于您的2个正则表达式,它将是:

colo(ur|r)
^[A-Z]+\t[0-9]+\t{[^\t]+|[^\t]+\t[^\t]+}

虽然没有文档记录,但我发现字符串“()”将匹配空字符串。例如:

colo(u|())r
同样,尝试一下

^[A-Z]+\t[0-9]+\t{[^\t]+(\t+[^\t]+|())}

在最后一种情况下,请确保将空字符串alternate放在最后,以避免获得部分匹配,或者确保还附加了一个行尾标记“$”。

在Visual Studio中,正则表达式是什么意思?你是用哪种语言写的?@John Rasch:他的意思是在Visual Studio的“查找/替换”窗口中。@Welbog-好吧,这很有意义,这是Visual Studio最愚蠢的事情之一,我的IDE迫使我学习一种不同于我用IDE编写的代码中使用的正则表达式语法。我想我不应该屏住呼吸等待VS 2010做明智的事情,使用.NET正则表达式语法进行查找/替换。有关VS正则表达式与.NET不同的一些历史信息,请查看Paul Dempsey的回复:这篇文章似乎与帮助文件相同,正如我提到的,它根本没有帮助。我想你的意思是“colo(u |())r”. 您的原始查询读取“匹配'colou'或'r'”。我们的两个方法在VisualStudio中的工作方式完全相同。你自己试试看。