Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
C# 如何使用正则表达式获取起始文本和结束字符之间的字符串?_C#_Regex - Fatal编程技术网

C# 如何使用正则表达式获取起始文本和结束字符之间的字符串?

C# 如何使用正则表达式获取起始文本和结束字符之间的字符串?,c#,regex,C#,Regex,我想得到以color=开头,以双引号结尾的字符串,带括号,带参数或不带参数,有时一行中可能有许多带引号的单词。我只想选择匹配的起始词和结束引号 这是我的输入文件 color="functions.getcolor('someinput')" color="getcolor()" color="!model.type && functions.getcolor(model.type, cofig.value)" color="model.type == enums.someenum

我想得到以color=开头,以双引号结尾的字符串,带括号,带参数或不带参数,有时一行中可能有许多带引号的单词。我只想选择匹配的起始词和结束引号

这是我的输入文件

color="functions.getcolor('someinput')"
color="getcolor()"
color="!model.type && functions.getcolor(model.type, cofig.value)"
color="model.type == enums.someenum"
color="(something=something)||(Something=somethingelse)"
color="model.type" mode="getmode()"
这是我的正则表达式

color=\".+\(.+\)*\"$
我的当前输出是除输入文件中的第4行之外的所有选中行 但我的要求是选择与前3行文本相似的行

预期结果


如何为此编写正则表达式?

似乎在引号中,您希望能够找到具有某种函数调用的文本。如果是这种情况,这个正则表达式将匹配第1-3行,而不是第4-6行。如果遇到更多问题,可以继续扩展[]中允许的字符


是否要查找调用getcolor的所有行…?除了在正则表达式的开头添加“^”以确保“color=”位于开头之外,它完全符合您的描述。@Archer简单地添加“^”不会使正则表达式只产生op提到的3个预期结果。我想当我昨天测试它时,它修复了其中一个?@w00ngy它做了他所描述的。“这个问题不清楚。”阿切尔同意了,我也被这个问题弄糊涂了!如果你能找出一个表达式来反转这个表达式,并使用排除[^…]而不是包含[a-zA-Z.!&],它将更易于管理。
color="functions.getcolor('someinput')"
color="getcolor()"
color="!model.type && functions.getcolor(model.type, cofig.value)"
^color=\"([a-zA-Z.! &])+\(.+\)*\"$