正则表达式中的子表达式
本文关键字:表达式 正则表达式 | 更新日期: 2023-09-27 17:50:35
我有以下用于语法高亮显示的Regex:
static Regex inQuotes = new Regex("('"|'').*('"|'')", RegexOptions.Compiled);
然而,有一个问题。每当我遇到这样的文本:
"text_example1'
或'text_example2"
实际上改变了文本的颜色,因为这两种情况被认为是匹配的。我想做的是改变这个Regex的方式,我可以用别的东西代替第二个('"|'')
。
我正在考虑子表达式,我想知道如何改变它,以便一旦我得到第一个匹配("
或'
),那么最后一个匹配必须与第一个匹配相同,而不是"
或'
。
('"|'').*?('1)
您可以在这里使用backreferencing
来实现您想要的。也让你的表达式non greedy
.*?
从贪心.*
.参见演示。
string strRegex = @"('""|'').*?('1)";