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 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'];