python使用正则表达式查匹配的内容: re.search

假设有一批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))

假设有两个Shader文件

Shader "XG/Particle"
{
}
Shader "LXF/GlowAdditiveColor"
{
}

那么匹配输出的结果就是

"XG/Particle"
"LXF/GlowAdditiveColor"

常用正则表达式

匹配中文

[\u4e00-\u9fa5]

匹配空白行

\n\s*\r

匹配Email

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

匹配URL

https?://[^\s]*

匹配18位身份证

^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$

你可能感兴趣的:(python)