Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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中使用正则表达式查找和替换子字符串_C#_Regex - Fatal编程技术网

C# 在C中使用正则表达式查找和替换子字符串

C# 在C中使用正则表达式查找和替换子字符串,c#,regex,C#,Regex,快速提问。 我有一个随机字符串,类似这样: 国家=='CANADA'和角色='MANAGERL1'| |角色='ADMIN'| |角色='LOC_IND'和年龄>67岁 我需要找到并替换与此模式角色=='ROLENAME'匹配的每个子字符串 roles.indexOf'ROLENAME',因此在本例中,我希望获得一个新字符串: country=='CANADA'和roles.indexOf'MANAGERL1'>=0 | | roles.indexOf'ADMIN'>=0 | | roles.i

快速提问。 我有一个随机字符串,类似这样:

国家=='CANADA'和角色='MANAGERL1'| |角色='ADMIN'| |角色='LOC_IND'和年龄>67岁

我需要找到并替换与此模式角色=='ROLENAME'匹配的每个子字符串

roles.indexOf'ROLENAME',因此在本例中,我希望获得一个新字符串:

country=='CANADA'和roles.indexOf'MANAGERL1'>=0 | | roles.indexOf'ADMIN'>=0 | | roles.indexOf'LOC_IND'>=0&&Age>67

在C语言中,我的意思是使用正则表达式RegEx,如何实现这一点? 正则表达式应该是什么?如果你知道更换的最短方法,那会很有帮助


谢谢。

您需要静态方法System.Text.RegularExpressions.Regex.Replace

您的模式是@role=='[^']*'


你的替代品是@roles.indexOf$1。

你还没有说你想用什么替代品。这可能是一个很好的开始构建您自己的代码的地方,我们可以提供帮助。为什么他想用什么替换它呢?他要求一个可以匹配它的正则表达式。我宁愿构建一个类,该类采用任何查询格式,并在内部对其进行标记,并允许您在修改任何单个标记后返回字符串。抱歉,我添加了需要获取的内容…角色。indexOf。。。或者角色。indexOf..>=0?太棒了!谢谢。马克,既然你是正则表达式的专家,也许你可以建议如何在与模式匹配的字符串中找到变量的小写名称,并将其转换为变量的某个名称:VarName==或VarName!=或者VarName,基本上是比较的左侧,VarName查找并转换为VarName??Regex不是我的强项:您需要:Regex.Replaceinput,@\w+[=!]+'[^']*',match=>match.Groups[1].Value.ToUpper+match.Groups[2].Value+match.Groups[3].Value;我在这里使用了lambda函数。它的参数匹配包含组属性。每个组都与模式中的每对括号匹配,因此组[1]。值包含变量的名称,[2]包含运算符,[3]包含常量。lambda方法必须为整个模式返回单个字符串。