1

UltraEdit テキスト エディタには、検索用の Perl および Unix 互換の正規表現エンジンが含まれています。

これを文字列行に一致させたい:

<branch id="attribute">
    <leaf id="attribute"/>
    <leaf id="attribute"/>
    <leaf id="attribute"/>
</branch>

このようなもので:

/<branch id="attribute">.*</branch>/gis

UltraEdit を使用してこれを達成する方法はありますか?

4

3 に答える 3

3

(?s) をパターンの先頭に置くと、単一行モードが有効になるため、\r\n は一致から除外されません。*

たとえば、以下はブランチ要素全体に一致します (UEStudio 6 では Perl スタイルの正規表現):

(?s)<branch id="attribute">.*</branch>

少し実験すると、他の Perl オプションもサポートされます。例: (?sx-i) の先頭は Single line, ignore eXtra whitespace in pattern, casesensitive (大文字と小文字を区別しないようにデフォルト設定されているようです) になります。

于 2009-01-29T21:46:38.743 に答える
2

Perl正規表現を選択している場合は、次のようなことができます。

<branch id="attribute">[\s\S]*</branch>

ここで、\ sは改行と戻りを含む任意の空白文字であり、\Sはその他の文字です。これはデフォルトで貪欲であることに注意してください。したがって、次の文字列がある場合:

<branch id="attribute">
  <leaf id="attribute"/>
  <leaf id="attribute"/>
  <leaf id="attribute"/>
</branch>
<branch id="attribute">
  <leaf id="attribute"/>
  <leaf id="attribute"/>
  <leaf id="attribute"/>
</branch>

次に、1つの正規表現は、文字列全体を1つの一致として検出します。これを行いたくない場合は、次のように追加?します。

<branch id="attribute">[\s\S]*?</branch>

回答からわかるように、UltraEditでこれを実現する方法はたくさんあります。

注:UltraEdit14.20でテスト済み。

于 2009-01-29T22:05:04.213 に答える
-2

やってみました:

/<branch id="attribute">[.\n]*</branch>/gis
于 2009-01-29T21:53:32.177 に答える