关于正则表达式替换代码,您可以从。NET文档
我需要检查字符串中的以下匹配项:
"SIN ", " SIN", " SIN ", "SX ", " SX", " SX ", "RIC ", " RIC", " RIC ", "OK ", " OK", " OK "
但是替换,当这些标记匹配时,只有子字符串
"SIN", "SX", "RIC", "OK"
[加上其他文字,保留空格。
每行都必须视为不同的输入字符串。
详细,我需要:
每次匹配其中一个时,将标记"SINSC"
中的子字符串"SIN"
和"SX"
替换为"SIN ", " SIN", " SIN ", "SX ", " SX", " SX "
每次匹配其中一个时,用标记"RICOM"
替换子字符串"RIC"
中的子字符串"RIC ", " RIC", " RIC "
("OK ", " OK", " OK "
的匹配用于其他目的,而不是替换,我以后需要在代码中使用它们]]] >>
我为第一次过滤写了以下表达式:
(^|\s+)(SIN|SX|RIC|OK)(\s+|$)
似乎可行(我已经考虑了前后多个空格的情况)。我已经在以下文本中尝试过:
(您可以在https://regex101.com/r/vIZCGW/2上看到演示,]
16M2 - SIN - 49.000 KM - SENS - A/C - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d. - COD.PROD.RIC.: n.d. - NR.PLATE: 14I2 - OK - 20.000 KM - A/C - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d. - COD.PROD.RIC.: n.d. - NR.PLATE: 11A0 - SIN - 55.000 KM - SQUARE - SENS - A/C 16H0 - n.d. - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d._n.d. marce - COD.PROD.RIC.: n.d. - NR.PLATE: 14N1 - SIN - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d._n.d. marce - COD.PROD.RIC.: n.d. - NR.PLATE: - STEEL 16D2 - SIN - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d._n.d. marce - COD.PROD.RIC.: n.d. - NR.PLATE: SX 100000 KM 15K2 SIN - 15D1 16P0 - OK - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d._n.d. marce - COD.PROD.RIC.: n.d. - NR.PLATE: 16H0 - SIN - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d._n.d. marce - COD.PROD.RIC.: n.d. - NR.PLATE: 16I1 SIN 14K1 - SIN - n.d. - FROM: - MATRIC.: n.d. - GEAR: n.d._n.d. marce - COD.PROD.RIC.: n.d. - NR.PLATE: SX 14E2 SX 16D1 NO TURBO SX 110000 KM 15M1 16O2 - SIN 15J1 - SIN 16L1 SIN DAMAGED 16P2 - SIN - DAMAGED SX 15E2 SX 9D2 SIN - 130.000 KM - 16J1 OK 13A0 SX 16M0 OK 11A1 OK 12V1 SX 105CV 15P1 OK 105CV 15O2 14A2 - SIN
我的问题基本上是2:
正则表达式的替换代码如何?
为什么在https://regex101.com/r/vIZCGW/2的演示中,某些行在行尾之后用浅蓝色突出显示,而另一些不是?]]
谢谢!
我需要检查字符串中的以下匹配项:“ SIN”,“ SIN”,“ SIN”,“ SX”,“ SX”,“ SX”,“ RIC”,“ RIC”,“ RIC”,“ OK”,“ OK”,“ OK”,但是替换,当这些标记匹配时,仅...
关于正则表达式替换代码,您可以从。NET文档
使用正则表达式,我会写这样的东西:
Regex regex = new Regex(@"(^|\s+)(SIN|SX|RIC|OK)(\s+|$)"); string result = regex.Replace(input, m => { switch (m.Groups[2].Value) { case "SX": case "SIN": return "SINSC"; case "RIC": return "RICOM"; default: return m.Value; } });
此代码的作用是检查第二组正则表达式捕获的内容,并将其替换为相应的值。
关于第二个问题,蓝色突出显示的行实际上是从正则表达式的第一组捕获的行。
关于正则表达式替换代码,您可以从。NET文档