我将有以下可能的字符串:
12_3
或
12_3 + 14_1 + 16_3-400_2
数字可能不同,但我正在寻找的是X_X数字模式。但是,我需要进行替换,搜索2_3并且不将12_3作为有效匹配返回。
+/-是艺术符号,可以是任何有效值。他们也需要ARENT(在第一个例子中)..所以,我可能想要检查一个只有12_3的字符串,如果我传入2_3,它将不会返回匹配。只有我通过了12_3。
这是针对C#脚本的。
非常感谢您的帮助!!我是正则表达式愚蠢。
答案 0 :(得分:2)
好的,我们有, 2_3 + 12_3 + 14_1 + 16_3-400_2 + 2_3
regexp#1:
Regex r1 = new Regex(@"\d+(\d_\d)");
MatchCollection mc = r1.Matches(sourcestring);
找到匹配项:
[0] [0] = 12_3 [0] [1] = 2_3
[1] [0] = 14_1 [1] [1] = 4_1
[2] [0] = 16_3 [2] [1] = 6_3
[3] [0] = 400_2 [3] [1] = 0_2
regexp#2:
Regex r2 = new Regex(@"\d+\d_\d");
MatchCollection mc = r2.Matches(sourcestring);
找到匹配项:
[0] [0] = 12_3
[1] [0] = 14_1
[2] [0] = 16_3
[3] [0] = 400_2
这是你想要的吗?
答案 1 :(得分:2)
\b\d+_\d+\b
。
\d
是数字,\b
是零宽度字边界。请参阅此C# regex cheat sheet。
更新:我刚刚查找了一个“C#正则表达式备忘单”来验证\b
是否为单词边界(grep中为\<
和\>
)。这是第一个结果。我实际上没有验证文本。无论如何,我现在链接到另一个备忘单。