<p <%=foo1%> <%=foo2%> >
<h3><%=bar1%></h3>
<h4><%=bar2%></h4>
</p>
我正在寻找一个常规的experssion,其结果应该是foo1和foo2,因为那些是声明为属性的值。不应捕获bar1和bar2,因为它们未声明为属性。
我使用的是ruby 1.8.7。
答案 0 :(得分:0)
Maaaybe就像
<(?:[^>]*<%=(.*)%>)+[^>]*>
答案 1 :(得分:0)
在这种情况下,我认为你最好做两次传球。首先,提取所有&lt; %%&gt;数据值是标记内的属性。然后,浏览并提取&lt;%和%&gt;。
例如:
<[^>]*?((?:<%=[^%]*%>\s*)+)[^<]*>
给你:
<%=foo1%> <%=foo2%>
然后,一个简单的
<%=(.*?)%>
关于第一个正则表达式的输出,给你foo1,foo2等。我一直在尝试构建一个组合的,但我能看到的唯一方法是使用后视操作。我不认为Ruby支持这一点,并且不管因为后视器必须多次在同一点匹配,我相信大多数引擎都会将它踢出去。
答案 2 :(得分:0)
这会有用吗?
/(?:<|\G)[^<>]*?<%=([^<>]*?)%>/
答案 3 :(得分:-1)
这样的事情怎么样..
\<\w+\s((.*)\s?)\>
这假设您将在输出
上运行正则表达式