python正規表現を使用して一致する内容を調べる:re.search

3612 ワード

次のようにフォーマットされたShaderファイルがあるとします.
Shader "XXXX_ShaderName"
{
}

正規表現でXXXX_をShaderNameが見つけた
import os
import re

for f in os.listdir('.'):
	if f.endswith('.shader'):
		#   utr-8   gbk  
		with open(f, 'r', encoding='utf-8') as fr:
		    try:
		        text = fr.read()
		    except:
		        with open(f, 'r', encoding='gbk') as fr:
		            text = fr.read()
		#   re.search
	    match = re.search('Shader.*"(.*)"', text)
	    print(match.group(1))

2つのShaderファイルがあるとします
Shader "XG/Particle"
{
}
Shader "LXF/GlowAdditiveColor"
{
}

一致出力の結果は
"XG/Particle"
"LXF/GlowAdditiveColor"

常用正規表現
中国語にマッチ
[\u4e00-\u9fa5]

空白行の照合

\s*\r

Emailに一致
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

URLの照合
https?://[^\s]*

18ビットのIDを照合
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$