我有一个带有大量<
,>
字符的XML文件,我不小心将其替换为<
和>
。什么样的正则表达式可以选择<
,>
,并忽略<[any word]>
形式的任何字符串?这可能是不可能的,如果是这样,正则表达式忽略<Abstract>
形式的字符串也很棒。
由于
答案 0 :(得分:1)
你可以尝试这个开头:/<(?![a-z\/])|(?<![a-z])>/g
。
在此处查看:https://regex101.com/r/YPNEMU/1。
它实际上会匹配<
和>
的每个出现,这些出现之前没有字母或后跟字母或/
。
如果只是在一封信的旁边但是缺少打开或关闭标签,那么现在仍然匹配!
[编辑]改善正则表达式
这个更进一步匹配<
出现后直接后跟字母但非结束标记的出现:/<(?![a-z\/][a-z\/ ]*?>)|(?<![a-z])>/g
在此处查看:https://regex101.com/r/YPNEMU/2
[EDIT]最佳解决方案
我发现它使用(*SKIP)(*FAIL)
!
/(<[a-z\/][^<>]*?>)(*SKIP)(*FAIL)|[<>]/g
。