正则表达式中的子表达式

本文关键字:表达式 正则表达式 | 更新日期: 2023-09-27 17:50:35

我有以下用于语法高亮显示的Regex:

static Regex inQuotes = new Regex("('"|'').*('"|'')", RegexOptions.Compiled);

然而,有一个问题。每当我遇到这样的文本:

"text_example1''text_example2"

实际上改变了文本的颜色,因为这两种情况被认为是匹配的。我想做的是改变这个Regex的方式,我可以用别的东西代替第二个('"|'')

我正在考虑子表达式,我想知道如何改变它,以便一旦我得到第一个匹配("'),那么最后一个匹配必须与第一个匹配相同,而不是"'

正则表达式中的子表达式

('"|'').*?('1)

您可以在这里使用backreferencing来实现您想要的。也让你的表达式non greedy .*?从贪心.* .参见演示。

https://regex101.com/r/nM7nT5/3

string strRegex = @"('""|'').*?('1)";