0

例えば..

サンプルテキスト:<tag>AandBandCandD</tag>

「and」のインスタンスを除いて、その間に発生するすべてを一致させる必要があるため、結果は次のようになりtag>ます。</tag

"あいうえお"

4

2 に答える 2

2

私はこれを2つのステップで行います:

  • まず、タグの内容を抽出します。
  • 次に、出現するすべてのandを空の文字列に置き換えます。

正規表現は、どちらのステップにも適したツールではありません。

  • 最初のステップは、HTML パーサーを使用するとより適切に達成できます。
  • 2 番目のステップでは、複雑な正規表現は必要ありません。単純な文字列置換が機能します。

アップデート

単一の正規表現を使用する必要がある場合、それはおそらく不可能です。

于 2012-08-13T18:53:34.017 に答える
1

とにかく、これはあなたが試すことができるものです。

(?<=<tag>)(?:((?!and).)+(?:and)?)*(?=</tag>)

読みやすさのために分解:

(?<=
  <tag>
)
(?:
  (
    (?!
      and
    )
    .
  )+
  (?:and)?
)*
(?=
  </tag>
)

これにより、s間のテキストに等しい数の一致が生成されると確信していますand。しかし、問題の正確な正規表現言語を知らなくても、少し違うだけでこれを壊す可能性のあるものがたくさんあります。

于 2012-08-13T19:16:38.083 に答える