-1

以下の出力では、次の行を検索する必要がREGEXXあり、その行で最後の単語を選択する必要があります。以下の例ではYYY-0. どうすればいいのですか?

 LOGICAL FILE MODIFIED:

 SYSTEM = x-YYY   UNIT = ALU

 PAGE      1
 LOG       LOG       SPARE  PHYSICAL           OBJ  SYSTEM     UNIT    DEVICE/
 FILE      FILE      FILE   FILE               IND   NAME      NAME    LOGICAL
 NBR  NAME  &  CLASS MODE   NAME                                        FILE

 1FF REGEXX   P                              1 X-YYY       ALU     YYY-0


 COMMAND EXECUTED
4

3 に答える 3

1
\bREGEXX\b.*\s(\S+)

上記のようなものは、「REGEXX」を検索し、それに続く空白以外の最後の文字列をキャプチャします。最後の「単語」(実際には、空白以外の文字のシーケンス) は、キャプチャ グループ 1 で使用できます。

于 2013-07-28T19:13:05.283 に答える
0

このパターンを複数行モードで使用できます。

\bREGEXX(?:[^\S\r\n]+\S+)*[^\S\r\n]+(\S+)[^\S\r\n]*$

(結果は最初の捕獲グループにあります)

またはより単純ですが、より多くのバックトラックがあります:

\bREGEXX\b.*?(\S+)[^\S\r\n]*$

注意: Tim Pietzcker が示唆しているように、単純な文字列関数を使用すると、より良い結果が得られます。テキストを行ごとに分割し、その後をスペースで分割してから、配列/リスト内をループして検索できますREGEXX

于 2013-07-28T19:15:19.577 に答える