gpt4 book ai didi

c# - 正则表达式中的子表达式

转载 作者:太空狗 更新时间:2023-10-30 01:17:47 27 4
gpt4 key购买 nike

我有以下用于语法高亮显示的正则表达式:

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

但是,有一个问题。每当我遇到这样的文字时:

“text_example1”'text_example2"

它实际上改变了文本的颜色,因为这两种情况被认为是匹配的。我想要做的是以某种方式更改此 Regex,以便我可以将第二个 (\"|\') 替换为其他内容。

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

最佳答案

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

你可以在这里使用backreferencing来实现你想要的。同时让你的表达式non greedy .*? from greedy 。 *。查看演示。

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

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

关于c# - 正则表达式中的子表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com