0

sed検索の取得に問題があり、htmlファイルでの作業を置き換えます。

私はこのように見える複数のセクションを持っています:

<TABLE class="cattable">   
  <TBODY>
    <TR>
      <TH colspan="2">Header</TH></TR>
    <TR>
      <TD>Random Amount of Data</TD>
      <TD>3</TD></TR>
    <TR>
      <TD>Moar Data</TD>
      <TD>3</TD></TR>
    <TR>
      <TD>Yup, More</TD>
      <TD>4</TD></TR></TBODY></TABLE>

する必要がある:

xxxxFOOxxxxに置き換えます。

<TABLE class="cattable">
  <TBODY>
    <TR>
     <TH colspan="2">

持っていて:

Header

これをyyyyFOOyyyyに置き換えます。

</TH></TR>

持っていて:

<TR>
   <TD>Random Amount of Data</TD>
   <TD>3</TD></TR>
<TR>
   <TD>Moar Data</TD>
   <TD>3</TD></TR>
<TR>
   <TD>Yup, More</TD>
   <TD>4</TD></TR>

これをzzzzFOOzzzzに置き換えます。

</TBODY></TABLE>

これが私がvimで試したことですが、貪欲な。*を適切に制限することはできません:

s:\(<TABLE class="cattable">\_s\s*<TBODY>\_s\s*<TR>\_s\s*<TH colspan="2">\)\(.*\)\(<\/TH><\/TR>\)\(\_.*[^<]*\)\(<\/TABLE>\):xxxxFOOxxxx\2yyyyFOOyyyy\4zzzzFOOzzz<br>:g

tia

4

1 に答える 1

1

*貪欲でない一致を取得するには、に置き換えます( PCRE / Perl正規表現\{-}と同じ)。*?より複雑なケースでは、ネガティブな先読み/後読みのあるものを使用する必要があります。\(\(<\/TH><\/TR>\)\@!.\)*の代わりに.*、ここ.\{-}でおそらく十分です。

注:では機能しませんsed

注2:vimのようにBREまたはERE(基本/拡張正規表現)を使用sedしておらvim :sず、外部プログラム(を含むsed)を呼び出しておらず、どちらの試みもに適していませんsed。したがって、タグからsed削除する際にこれを行う方法を尋ねるつもりがなかった場合。sed

于 2013-03-20T19:39:49.937 に答える