首先,我知道您不应该尝试使用正则表达式来修改XML,这是一个特殊情况,我必须这样做而不使用解析器。
我想要这个:
<nicetag_A-B>Teststring X-Y</nicetag_A-B>
看起来像这样:
<nicetag_>Teststring X-Y</nicetag_>
简而言之,我想删除[任何字母] - [任意字母],但只能删除标签,而不是内部的实际内容。
到目前为止这是我的正则表达式:
Regex.Replace(inputString, @"(<.*?[a-zA-Z])\-([a-zA-Z].*?>)", "$1$2");
这个问题是它只适用于上面的例子,如果标签的名称没有A-B,内部内容(X-Y)将被替换。
有什么想法吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以尝试[^>\s]*
(匹配除>
和空格之外的所有内容)而不是.*
,以确保您仍然在标记名称中。
答案 2 :(得分:0)
您不能只用[a-zA-Z]-[a-zA-Z]>
替换>
吗?