0

次のコード行から抽出する必要があります

<label for="<%=foobar.bar %>">Password:</label>

<label for="foobar">Password:</label>

私は抽出する必要がありfoobarます、私はこれを使うことができます:(?<=for=")[^"]+(?=("))抽出するために:

<%=foobar.bar %>

foobar

しかし、私は望んでいません。<%=または.bar、作成しようとして(?<=for=")[^"]+(?=(")) | (?<=for="<%=)[^"]+(?=("))も、含まれているラベル<%=が両方の条件を満たしているために機能せず、XORを使用できないと思いますか?これは誰かが私を助けることができるものですか?

メルシー:)

4

2 に答える 2

1

uber正規表現を作成しない方が良いと思います。いくつかのステップでタスクを実行します。

  1. 抽出<%=foobar.bar %>またはfoobar正規表現を使用(?<=for=")[^"]+(?=("))
  2. 結果がのような正規表現と一致するかどうかを確認し<%=([\w]+)\.bar\s*%>ます。
  3. $1一致からのグループを使用する場合は、ステップ2の結果を使用します。
  4. foob​​arを取得します
于 2009-08-07T11:07:35.057 に答える
0

あなたはこれを試すことができます:

(?<for="(<%=)?)[^" ]*(?=( %>)?")

キャプチャしたいものにスペースが含まれないと仮定します。それ以外の場合は、次のことを試すことができます。

(?<for="(<%=)?)[^"]*?(?=( %>)?")

欲張りでない形式を使用するには[^"]*

于 2009-08-07T11:06:23.970 に答える