import re
text = '2012-02-23 | My Photo Folder'
pattern = r'''
(?P<year>\d{4}) # year group consisting of 4 digits
-
(?P<month>\d{2}) # month group consisting of 2 digits
-
(?P<date>\d{2}) # date group consisting of 2 digits
\s\|\s
(?P<name_with_spaces>.*$) # name_with_spaces consuming the rest of the string to the end
'''
compiled = re.compile(pattern, re.VERBOSE)
result = compiled.match(text)
print('{}{}{}_{}'.format(
result.group('year'),
result.group('month'),
result.group('date'),
result.group('name_with_spaces').translate(None,' ')))
出力:
>>>
20120223_MyPhotoFolder
少し説明:
re.VERBOSE
正規表現を複数行で記述して読みやすくし、コメントも許可します。
'{}{}{}_{}'.format
で指定された場所に引数を配置する単なる文字列補間メソッド{}
です。
translate
メソッドを適用しresult.group('name_with_spaces')
てスペースを削除します。