我怎么能Regex.Replace
本文关键字:Replace Regex 怎么能 | 更新日期: 2023-09-27 18:10:52
如何使用正则表达式?更换实现流动:给定输入字符串:
"DV_DHW dv_DWH dv_dwh Dv_Dwh some more text dv_dwhtest"
我想把它改成:
"Test_DV_DHW Test_DV_DHW Test_DV_DHW Test_DV_DHW some more text dv_dwhtest"
我试过了:
Regex.Replace("Test_DV_DHW Test_DV_DHW Test_DV_DHW Test_DV_DHW some more text dv_dwhtest", "DV_DHW", "Test_DV_DHW", RegexOptions.IgnoreCase);
但是它只替换了DV_DHW(区分大小写)的第一个实例
您的输入包含"DV_DHW"answers"DV_DWH"。它们不是同一根弦。注意,第一个音是D-H-W,其中"H"在"W"之前,第二个音是"W"在"H"之前。"
因为它们不相同,所以只有第一次出现的"DV_DHW"被替换。正确的输出是:
Test_DV_DHW dv_DWH dv_DWH dv_DWH some more text dv_dwhtest
如果您打算替换两个字符串,除了最后一个字符串,因为它不是一个完整的单词,您可以使用这种模式:@"'bDV_D(?:HW|WH)'b"
'b
元字符匹配单词边界,然后模式使用(?:...)
作为非捕获组,该组将匹配"HW"或"WH"文本。
Test_DV_DHW Test_DV_DHW Test_DV_DHW Test_DV_DHW更多文本dv_dwhtest
注意最后一个单词"dv_dwhtest"没有被修改,因为"dv_dwh"不是一个完整的单词,而是一个单词的一部分。