パターンに一致しないものをすべて選択してください

ミシェル・ジョルジュ・ナジャリアン

指定されたパターン以外のすべてを取得する正規表現を作成しようとしています。私はネガティブルックアヘッドを使おうとしていますが、式をテストするときはいつでも機能しません。

この形式のファイルがあります:

(ガベージ情報)ファイル名(その他のガベージ).extensionまたは[ガベージ情報]ファイル名[その他のガベージ] .extension

たとえば、ファイルの1つは、[O2CXDR]レポート1月[77012] .pdfまたは(XEW7CK)販売手数料(99723).xlsです。

Cでregex.hライブラリを使用しているので、POSIXライブラリだと思います。

「filename」と「.extension」を抽出して、filename.extensionファイルを作成するスクリプトを記述できるようにしたいと考えています。

これまでのところ、角かっことその周りのスペースでガベージ情報を選択する式がありますが、残りを選択することはできません。

\s*(\[|\().*?(\]|\))+\s*

そして私が試したネガティブな先読みは:

.*(?!(\s*(\[|\().*?(\]|\))+\s*)).*

しかし、それは1回の一致ですべてを選択するだけです。

私は先読みと後読みを正しく理解していないと確信しています。式を修正するにはどうすればよいですか?私は少し迷っているので、誰かがそれらがどのように機能するかを説明できますか?ありがとう!

ctwheels

あなたが正規表現エンジンを指定していないので、私はタグを使用することができサブセットをターゲットだろう\K\G\A(のようなPCRE)。

以下では、一致リセット(\K)、強化された貪欲なトークン、および一致の開始(文字列の開始なし)の組み合わせを使用\G(?!\A)します。これについては、以下でさらに説明します。

ここで使用されている正規表現を参照してください

注:空の一致を削除します

\s*[[(].*?[])]\s*\K|\G(?!\A)(?:(?!\s*[[(].*?[])]\s*).)+
  • 次のいずれかに一致します。
    • オプション1:
      • \s* 任意の空白を何度でも一致させる
      • [[(][またはのいずれかに一致(
      • .*? 任意の文字を何度でも一致させますが、できるだけ少なくします(レイジーマッチング)
      • [])]]またはのいずれかに一致)
      • \s* 任意の空白を何度でも一致させる
      • \K試合のリセット-正規表現内の指定された位置を試合の新しい開始として設定します。これは、このタグの前にあるものは、試合全体でキャプチャされないことを意味します。
    • オプション2:
      • \G(?!\A) 検索の開始点または前回の正常な一致終了の位置でのみ一致し、文字列の開始点では一致しません。
      • (?:(?!\s*[[(].*?[])]\s*).)+ 負の先読みパターン(最初のオプションと同じ)を除いて、複数回一致する強化された貪欲なトークン。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パターンに一致しないすべての要素を選択するPython正規表現

分類Dev

[パターン]に一致するものを除いて、psqlデータベース内のすべてのテーブルを選択します

分類Dev

条件に一致する値のみを選択してください

分類Dev

特定のパターンに一致しないものをすべて無視する

分類Dev

複数のselectに存在するsqlselect列。リスト内のすべての値に一致する値を選択してください

分類Dev

指定されたパターンに一致しないすべての行をgrepする方法

分類Dev

MySQL。正規表現テンプレートに一致するテーブルからすべてを選択するか、何も選択しない

分類Dev

Java正規表現は、特定のパターンに一致し、特定の文字の間にないものすべてに一致します

分類Dev

他のすべてのテーブルデータが正しくない場合にのみ、1つのデータを選択してください

分類Dev

特定の番号を持つものをすべて選択してください

分類Dev

Linqは複数の結合から選択し、テーブルが一致を返さない場合でもすべての行を返します

分類Dev

パターンに一致しないすべての行を削除します

分類Dev

正規表現-パターンに一致しないすべての文字列を検索します

分類Dev

EXTENDED_GLOBが設定されているにもかかわらず、1つを除くすべてのファイルに一致するzshglobパターンが機能しない

分類Dev

別の列の値と一致する列の値を選択してください

分類Dev

パターンに一致しないものをすべて削除するにはどうすればよいですか

分類Dev

HH:MMパターンに一致しないものをすべて削除するにはどうすればよいですか?

分類Dev

oboe.js-すべての一致ではなく特定のノードを選択するパターン?

分類Dev

パンダapply():文字列の一致に基づいて選択した列を乗算し、完全なデータフレームを返す方法

分類Dev

Vimでパターンに一致しないすべての単語と文字を削除する方法

分類Dev

bashのパターンと一致しないすべてのファイルを一覧表示します

分類Dev

一致しないものをすべて削除します

分類Dev

すべての条件に一致しない「where」のある行を選択します

分類Dev

すべての介入にある製品を選択してください

分類Dev

正規表現-パターンに一致する文字と一致しない文字のすべてのグループを一致させるにはどうすればよいですか?

分類Dev

egrep は、リストのパターンに一致する行だけではなく、すべてを出力します

分類Dev

結合されたすべてのレコードが基準に一致しないレコードを選択する方法

分類Dev

リスト内の少なくともすべてのアイテムに一致するレコードを選択します

分類Dev

パンダは、一致しないリストアイテムをデータフレームにないものとしてタグ付けします

Related 関連記事

  1. 1

    パターンに一致しないすべての要素を選択するPython正規表現

  2. 2

    [パターン]に一致するものを除いて、psqlデータベース内のすべてのテーブルを選択します

  3. 3

    条件に一致する値のみを選択してください

  4. 4

    特定のパターンに一致しないものをすべて無視する

  5. 5

    複数のselectに存在するsqlselect列。リスト内のすべての値に一致する値を選択してください

  6. 6

    指定されたパターンに一致しないすべての行をgrepする方法

  7. 7

    MySQL。正規表現テンプレートに一致するテーブルからすべてを選択するか、何も選択しない

  8. 8

    Java正規表現は、特定のパターンに一致し、特定の文字の間にないものすべてに一致します

  9. 9

    他のすべてのテーブルデータが正しくない場合にのみ、1つのデータを選択してください

  10. 10

    特定の番号を持つものをすべて選択してください

  11. 11

    Linqは複数の結合から選択し、テーブルが一致を返さない場合でもすべての行を返します

  12. 12

    パターンに一致しないすべての行を削除します

  13. 13

    正規表現-パターンに一致しないすべての文字列を検索します

  14. 14

    EXTENDED_GLOBが設定されているにもかかわらず、1つを除くすべてのファイルに一致するzshglobパターンが機能しない

  15. 15

    別の列の値と一致する列の値を選択してください

  16. 16

    パターンに一致しないものをすべて削除するにはどうすればよいですか

  17. 17

    HH:MMパターンに一致しないものをすべて削除するにはどうすればよいですか?

  18. 18

    oboe.js-すべての一致ではなく特定のノードを選択するパターン?

  19. 19

    パンダapply():文字列の一致に基づいて選択した列を乗算し、完全なデータフレームを返す方法

  20. 20

    Vimでパターンに一致しないすべての単語と文字を削除する方法

  21. 21

    bashのパターンと一致しないすべてのファイルを一覧表示します

  22. 22

    一致しないものをすべて削除します

  23. 23

    すべての条件に一致しない「where」のある行を選択します

  24. 24

    すべての介入にある製品を選択してください

  25. 25

    正規表現-パターンに一致する文字と一致しない文字のすべてのグループを一致させるにはどうすればよいですか?

  26. 26

    egrep は、リストのパターンに一致する行だけではなく、すべてを出力します

  27. 27

    結合されたすべてのレコードが基準に一致しないレコードを選択する方法

  28. 28

    リスト内の少なくともすべてのアイテムに一致するレコードを選択します

  29. 29

    パンダは、一致しないリストアイテムをデータフレームにないものとしてタグ付けします

ホットタグ

アーカイブ