Regex匹配单行或多行中的任何单词 ]
本文关键字:任何单 单行 Regex | 更新日期: 2023-09-27 18:26:39
我们需要搜索单词"test.properties",并在一行或多行中替换"test1.field"。
单词边界不会忽略'r'n
,它可以找到:
test.'r'nproperty
如何忽略正则表达式C#中单词之间的'r'n
?
例如:
输入来源:
int c = test'r'n.Property'r'n["Test"];
所需输出:
int c = test1'r'n.Field'r'n["Test"];
我的当前输出:
int c =test1.Field.["test"]
图案:
我正在使用的regex:
Regex regex = new Regex(@"'btest's*'.'s*property'b", RegexOptions.IgnoreCase | RegexOptions.Singleline);
replacementLine = regex.Replace(sourceLine, "test1.field");
我们只需要替换字符串,而不需要换行符。请提出你的建议?
试试这个:
Regex regex = new Regex(@"(?'g1''btest'b'.'W*)(?'g3''bproperty'b)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
var replacementLine = regex.Replace(sourceLine, "${g1}Field");
您需要一个查找表,它也接受可能的空白。这里有一个例子,它忽略了第一个,同时改变了第二个和第三个发现。
var data = @"testNO.property['LeaveThis'];
test
.property
['Test'];
test.property['Test2'];";
var pattern = @"(?<=test['r'n's]*'.)property";
Regex.Replace(data, pattern, "field")
替换结果
testNO.property['LeaveThis'];
test
.field
['Test'];
test.field['Test2'];