| 文字 | 説明 | 同様 | 例 | マッチする | マッチしない | 
|---|---|---|---|---|---|
| \d | 任意の数字 | [0-9] | |||
| \D | 任意の数字以外 | [^0-9] | |||
| \s | 任意の空白文字 | [\t\n\r\f\v] | |||
| \S | 任意の空白文字以外 | [^\t\n\r\f\v] | |||
| \w | 任意の英数字 | [a-zA-Z0-9_] | |||
| \W | 任意の英数字以外 | [\a-zA-Z0-9_] | |||
| \A | 文字列の先頭 | ^ | |||
| \Z | 文字列の末尾 | $ | |||
| . | 任意の一文字 | - | a.c | abc, acc, aac abbc, accc | |
| ^ | 文字列の先頭 | - | ^abc | abcdef defabc | |
| $ | 文字列の末尾 | - | abc$ | defabc abcdef | |
| * | 0回以上の繰り返し | - | ab* | a, ab, abb, abbb | aa, bb | 
| + | 1回以上の繰り返し | - | ab+ | ab, abb, abbb | a, aa, bb | 
| ? | 0回または1回 | - | ab? | a, ab | abb | 
| {m} | m回の繰り返し | - | a{3} | aaa | a, aa, aaaa | 
| {m,n} m〜n | 回の繰り返し | - | a{2, 4} | aa, aaa, aaaa | a, aaaaa | 
| [] | 集合 | - | [a-c] | a, b, c | d, e, f | 
| 縦線 | 和集合(または) | - | a縦線b | a, b | c, d | 
| () | グループ化 | - | (abc)+ | abc, abcabc | a, ab, abcd | 
import re
filter = re.compile('.+\\\\.(jpg|png)')
path = 'C:/Users/yamagishi/Documents/files.jpg/pic001.png'
result = filter.match(path)
if result:
    print(result)
    print(result.start())
    print(result.end())
    print(result.group())
    print(result.group(0))
    print(result.group(1))
    print(result.groups())
# Result:
# <re.Match object; span=(0, 49), match='C:/Users/yamagishi/Documents/files.jpg/pic001.png>
# 0
# 49
# C:/Users/yamagishi/Documents/files.jpg/pic001.png
# C:/Users/yamagishi/Documents/files.jpg/pic001.png
# png
# ('png',)
path = 'C:/Users/yamagishi/Documents/files.jpg/pic001.exr'
result = filter.match(path)
# None
import re
path = 'C:/Users/yamagishi/Documents/files.jpg/pic001.png'
filter = re.compile(r'(jpg|png)')
result = filter.sub('exr', path)
print(result)
# C:/Users/yamagishi/Documents/files.exr/pic001.exr
filename, ext = os.path.splitext(p)
pathlib.Path(p).suffix()
import re
p = r'C:/CG/PROJ/01_Workflow/Shots/2031-00100/Rendering/3dRender/cg_v022/v020/cg/cg.v0012.%04d.exr'
# 「vで始まる数字」部分
re.findall(r'v[0-9]+', p)
# ['v022', 'v020', 'v0012']
+を取ると「vの次の文字が数字部分」となる。vと数字1桁部分。
re.findall(r'v[0-9]', p)
#['v0', 'v0', 'v0']
vと数字三桁
re.findall(r'v[0-9][0-9][0-9]', p)
['v022', 'v020', 'v001']