:F8
にPythonでカンマ区切りの値を含むテキストの正規表現を書くには?私はこのような行からF8フィールドにF1を取得するためにPythonで正規表現を記述しようとしている
LineNumber(digits): F1, F2, F3, ..., F8;
F1
は、大文字/小文字とハイフンを持つことができます。例えば
:私がこれまで試したどのような
Header
Description
21: Yes, No, Yes, No, Ye-s, N-o, YES, NO;
Footer
は、上記のフォーマットを持つ行に一致する matched = re.match(r'\d+: ([a-zA-Z-]*,){7}(.*);', line)
です。しかし、matched.groups()
と入力して一致するフィールドを印刷すると、F7,
とF8
が表示されますが、期待される出力はF1,
からF7,
とF8
のリストになります。
私はこの正規表現に関するいくつかの質問があります。
私は
groups()
方法は(...)
を使用して正規表現にグループ化されたフィールドを返すと思います。(...)
を使用してグループ化されており、正規表現と一致しているのに、出力でF1からF6を取得しないのはなぜですか?F1からF7への
,
を除外するために書くことができる優れた正規表現は何ですか?あなたは(pattern){number}
のような構造を持っている場合は、それが複数のインスタンスに一致するが、(提案正規表現の短い説明がはるかに高く評価される)
なぜあなたはcsvとして解析しませんか? –
@PadraicCunninghamドキュメントには、このパターンと一致しない他の行があります。さらに、行番号は各行の先頭に表示されます。 CSVとしての解析はまだ機能しますか? – Mahdi
適切なサンプルを追加すると、私はあなたに伝えることができます。 –