正则表达式会从此原始标记返回'details.jsp'(不含引号!)会怎样?我可以很容易地匹配value =“details.jsp”的所有内容,但是在匹配属性内的内容时遇到了麻烦。正则表达式匹配属性值
<s:include value="details.jsp" />
任何帮助非常感谢!
感谢
劳伦斯
正则表达式会从此原始标记返回'details.jsp'(不含引号!)会怎样?我可以很容易地匹配value =“details.jsp”的所有内容,但是在匹配属性内的内容时遇到了麻烦。正则表达式匹配属性值
<s:include value="details.jsp" />
任何帮助非常感谢!
感谢
劳伦斯
/value=["']([^'"]+)/
将使 “details.jsp” 第一个捕获小组。
编辑:
针对ircmaxell的评论,如果你真的需要它,下面的表达式更加灵活:
/value=(['"])(.+)\1/
它会匹配<s:include value="something['else']">
的事情,但只要注意该值将被放置在第二个捕获组中。
但正如前面提到的,正则表达式不是你想用于解析XML的东西(除非它是一个非常简单的情况),所以当你应该使用解析器时,不要花费太多时间在复杂的正则表达式上。
不要使用REGEX来解析XML/HTML。为此使用XML解析器。其次,你可以发布你的正则表达式不起作用吗? – ircmaxell 2010-06-15 15:05:36
看到相关答案: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – huitseeker 2010-07-07 10:40:34