2011-04-19 17 views
0
<p <%=foo1%> <%=foo2%> > 

    <h3><%=bar1%></h3> 

    <h4><%=bar2%></h4> 

</p> 

私は通常のエクスカーションを探していますが、その結果は属性として宣言された値であるため、foo1とfoo2にする必要があります。 bar1とbar2は属性として宣言されていないため、キャプチャしないでください。html属性内のキャプチャ方法

私はruby 1.8.7を使用しています。

+0

「キャプチャ」とはどういう意味ですか? –

+1

ここで最初の答えを見てください:[RegExはXHTML内蔵タグ以外のオープンタグと一致](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags ) – Svante

答えて

0

のようなものを想定していますあなたは2つのパスをする方が良いと思う。まず、タグ内の属性であるすべての<%%>データ値を抽出します。次に、<%と%>を抽出して抽出します。

は、たとえば:あなたはなど、foo2はをFOO1与える、最初の正規表現からの出力に簡単な

<%=(.*?)%> 

、その後

<%=foo1%> <%=foo2%> 

を:

<[^>]*?((?:<%=[^%]*%>\s*)+)[^<]*> 

はあなたに与えます私は組み合わされたものを構築しようとしてきましたが、私が見ることができる唯一の方法は、ルック・バック・オペレーションを使うことです。私はそれがRubyでサポートされているとは思わないし、ルック・バック・バックが同じポイントで何度もマッチしなければならないので、ほとんどのエンジンがそれを蹴飛ばすだろうと私は信じている。

-1

どのようにこのような何かについて..

\<\w+\s((.*)\s?)\> 

これはこれは、私の場合であるあなたが出力

0

Maaaybe上で正規表現を実行します

<(?:[^>]*<%=(.*)%>)+[^>]*> 
0

これは機能しますか?

/(?:<|\G)[^<>]*?<%=([^<>]*?)%>/ 
+0

誰でも '\ G'が何であるかを知っている人がいるのかどうか疑問に思います。みんなの答えは、受け入れられたものでさえも、下落したようだ。 – sawa

+0

ええと私は誰もがなぜdownvoted得たか理解していない:/ - 完全に有効な提案は何のためのupvoteを持って! – Dve

+0

@Dveありがとうございます。 – sawa