需要以下的正则表达式模式:
input = "char buf[10];"
To be replaced to input = "String buf = null;"
目前正在使用此功能,但我对Regex并没有太多经验并且卡住了
input = Regex.Replace(input, @"char\s\(.+\)\s*\[\d\]", @"String = $1");
答案 0 :(得分:2)
char\s\(.+\)\s*\[\d\]
^^ ^^
在正则表达式的突出显示部分,您将匹配(
和)
个字符,这些字符不会出现在输入文本中。您必须删除转义字符才能使其成为实际的捕获组,因此您可以在替换文本中使用其内容。
下一个问题是您只匹配方括号内的单个数字。您也希望接受多个数字,因此请使用\d+
而不是\d
。
最后,我认为您的替换字符串应该是String $1
,因为匹配的组是变量名而不是内容。
Regex.Replace(input, @"char\s(.+)\s*\[\d+\]", @"String $1"); // String buf;