如何编写一个单独识别每个表达式的正则表达式?

时间:2012-04-26 13:26:57

标签: regex jsp

我正在尝试编写一个与JSP中的以下代码匹配的reg exp:

="<%= "Index: " + index %>"

但是,如果我以一般的方式将它写在同一行上的表达式中,那么最终将被组合:

value="<%= "items[" + Index + "].selected" %>" id="<%= "Checkbox" + Index %>"

有人可以帮我找出reg exp分别识别value和id标签,以便我可以用一个搜索替换来用单引号替换外部双引号吗?

谢谢, 阿列克谢蓝。

P.S。 到目前为止,我有这个不够具体:

"=<%=.*".*".*%>"

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

<%=\s*"(.+?)"(.+?)\s*%>

? +使+匹配尽可能少。

答案 1 :(得分:1)

如果您想匹配整个“&lt; %%&gt;”元素包括引号,无论标签内部是什么(除了%)我会使用这个正则表达式:

"<%=[^%]+%>"

您可能需要在代码中转义引号,如下所示:\"

它说的是:

  • 匹配“&lt;%
  • 匹配所有不是%
  • 的内容
  • 匹配%&gt;“

修改

如果您只对内部带双引号的元素特别感兴趣 - 请使用:

"<%=([^%]*"){2}[^%]+%>"
  • ([^%]*"){2}:匹配所有不是%(可选)和双引号的内容 - 重复两次
  • [^%]+:匹配任何剩余的字符