0
ファイルパスのリストがあります。ファイル名には検索する必要があるものが含まれています。 C:\PATH\PATH\PATH\PATH\THE_THING_I_NEED.xslx
Python Regexエラー
Pythexを使用して、私は正規表現を作成し、私が欲しいものを正確に選びます。 \
と.xslx
の間にあるものはどれですか。以下のコードであり、私が取得エラー:
import re
files = ['C:\\PATH\\PATH\\PATH\\thing1.xlsx', 'C:\\PATH\\PATH\\PATH\\PATH\\thing2.xlsx']
pattern = re.compile('(?<=\\)?[a-zA-Z]+(?=\.xlsx)')
for x in files:
matches =re.findall(pattern, x)
print(matches)
#error i get below
error: missing), unterminated subpattern at position 0
だから私は余分な)
を追加し、エラーを次し、それが動作します:
pattern = re.compile('(?<=\\))?[a-zA-Z]+(?=\.xlsx)')
# ^added right there
正確に余分な)
がやっていることは何ですか? Pythexはそれを必要としないようで、私の目には不要です。
です。そのため、生の文字列リテラ正規表現をPythonで定義するときに使えます。 –
余分なものは必要ありません)、余分な\\が必要です。 –
ファイルパスからデータを抽出しようとしている場合は、正確にその目的のために存在する 'os.path'の関数の使用を検討してください。 'os.path.splitext(os.path.split( 'C:¥¥PATH¥¥PATH¥¥PATH¥¥thing1.xlsx')[1])' [0] '' thing1 "'を返します。 – Kevin