Regexを使って解析したいという結果が得られました。 txtファイルの各行には、100までの数量を含む2つのエントリーが続き、長さとスペースが異なる項目名が続きます。Regexを使って複数の項目を1行に区切る
例:
7 BALLS OF STRING 13 CARDBOARD BOXES
14 ROCKS 12 PENCILS
私はグループ1の量と第一のエントリにマッチしたいと思いますし、それを持つ第二のエントリが2
Regexを使って解析したいという結果が得られました。 txtファイルの各行には、100までの数量を含む2つのエントリーが続き、長さとスペースが異なる項目名が続きます。Regexを使って複数の項目を1行に区切る
例:
7 BALLS OF STRING 13 CARDBOARD BOXES
14 ROCKS 12 PENCILS
私はグループ1の量と第一のエントリにマッチしたいと思いますし、それを持つ第二のエントリが2
あなたは次の正規表現を使用することができ、グループ内の量ですパターンやファイルの読み取り中にそれを使用し、1行あたり:https://regex101.com/r/18dege/1
:ここ^(\d*\s[A-Z\s]*)\s(\d*\s[A-Z\s]*)$
が実際の例であります
ここではいくつかの詳細:
^
は([0-9]*
に等しい)文字列の先頭、$
それ\d*
試合の終わりには、任意の数(0以上)貪欲な数字のと一致して\s
は空白文字と一致します(例:等タブ、スペース、)[A-Z\s]*
マッチ大文字の任意の数(0以上)と空白貪欲()
一致するグループを作成する(文字列の一部を抽出する)以下のコメントによれば、大文字の後に小文字を付けることができます。一致させるべきではありません。このための例は次のようになります。
7 BALLS OF STRING 13 CARDBOARD BOXES
14 ROCKS 12 PENCILS
18 TABLES 3 BLANKETS sewn with patches
このパターンに一致するには、次の正規表現を使用することができます:上記のパターンへのアップデートとして
^(\d*\s[A-Z\s]*?)[a-z\s]*\s(\d*\s[A-Z\s]*?)[a-z\s]*$
を、私は次のように追加しました:
(ないグループ内)の文の間[a-z\s]*
と第二文の後、小文字の文字列に一致するように(\d*\s[A-Z\s]*?)
私はマッチを非貪欲にするために、疑問符?
を追加しました。これにより、大文字と小文字の間の空白を一致するグループに追加できなくなります。パターンの最後に文字列の末尾に$
がなければなりません。そうでなければ、第2のグループは十分な文字と一致しません。ここでライブの例です:https://regex101.com/r/18dege/2
使用しているどのような言語やツール?どのようにこれを解決しようとしましたか? –
試した試行例をいくつか追加してください。あなたがいったんやったらコミュニティはあなたを助けることができるはずです。 – ThatChris