0

私はここでこの死んだ馬を打ち負かしています:

<p style='margin: 5px 0;'>I wan't be matched!</p>
<p style='margin: 5px 0;'>me 2!</p>
<ul>
    <li>
      <b>Lorem</b>
      ipsum sit dolor amet
    </li>

    <li>
      <b>Lorem</b>
      ipsum sit dolor amet
    </li>

    <li>
      <b>Lorem</b>
      ipsum sit dolor amet
    </li>

    <li>
      <b>Lorem</b>
      ipsum sit dolor amet
    </li>

    <p style='margin: 5px 0;'>can i haz regex</p>
    <p style='margin: 5px 0;'>NO! you can't</p>
    <li>
      <b>Lorem</b>
      ipsum sit dolor amet
    </li>   
<ul>

それから、すべてを変更する正規表現が必要です

    <p style='margin: 5px 0;'>can i haz regex</p>

タグの後、それをに変換します

    <li>can i haz regex</li>

それは簡単ですが、私が正規表現の初心者であることを考えると、それを成し遂げることはできません。

後ろ向き表現でやってみましたがだめでした

  (?m:(?<=(.*?<ul>.*?)(<p style='margin: 5px 0;'>.*?</p>)+)

理解しようとしているのは約2時間ですが、実際には機能していないようです。このことを解決する方法を説明できる人に事前に感謝します。:)

4

1 に答える 1

1

<ul>変更する行が と の間でなければならない場合は、次のコマンド</ul>のようなものを試すことができます。sed

sed "/<ul>/,/<\/ul>/ s|<p style='margin: 5px 0;'>\(.*\)</p>|<li>\1</li>|g" test.html

これは、アドレス範囲を指定するという意味でも正規表現のみを使用しているわけではありません。これらのツールを HTML で使用する場合は注意が必要ですが、コメントには同意します。そもそも、空白やタグがどのように行に配置されるかに依存したくありません。

また、使用している言語を教えてください (重要な場合)。

于 2012-05-31T19:18:03.217 に答える