【发布时间】:2010-02-24 14:38:30
【问题描述】:
我有一个这样的字符串:
<block trace="true" name="AssignResources: Append Resources">
我需要在&lt;(在本例中为block)和=(这里
trace 和 name)。
我尝试了几种正则表达式模式,但我所有的尝试都返回了包含“分隔符”字符的单词......比如;block。
我确信这并不难,但我还没有找到解决方案。
有人有提示吗?
谢谢。
顺便说一句:我想用gsub替换模式匹配。
编辑:
用以下正则表达式解决它:
1)
/\s(\w+)="(.*?)"/
匹配 $1 和 $2 中的所有 attr 及其值。
2)
/&lt;!--.*--&gt;/
匹配 cmets
3)
/&lt;([\/|!|\?]?)([A-Za-z0-9]+)[^\s|&gt;|\/]*/
匹配所有标签名称,无论它们是在结束标签、自结束标签、<?xml>-tag 还是 DTD-tag 中。 $1 包含可选的前缀 / ! or ? 或什么都没有,$2 包含标记名
【问题讨论】: