我需要执行一个有点奇怪的正则表达式替换。我刚刚解决了问题,但并不完全。
我需要从字符串中删除多个子字符串,其中要删除的子字符串由方括号[]
包围,除了,其中方括号后面跟着两个主题标记[]##
。
例如,如果原始字符串是:
[phase]This is []a test [I]## of the emergency broadcast system. [28]##[test]xyz
然后正则表达式替换后的预期输出将是:
This is a test [I]## of the emergency broadcast system. [28]##xyz
到目前为止,我已经尝试了一些方法,但我提出的最接近的正则表达式模式字符串是"\[[^\]]*\][^##]"
。这个问题是它匹配的角色多于应该的角色。例如,使用上面的测试字符串,并使用空字符串替换正则表达式,它返回:
his is test [I]## of the emergency broadcast system. [28]##yz
我正在搜索的正则表达式模式字符串是什么?
答案 0 :(得分:1)
答案 1 :(得分:0)
将"\[[^\]]*\][^##]"
替换为"(\[[^\]]*\])(([^#]{2})?)"
。
首先,您的[^##]
不遵循规则“,除非方括号后跟两个主题标签[] ## ”。因此必须将其更改为两个非锐化字符。
其次,尝试像这样替换:
var s= Regex.Replace(input, pattern, "$2");