站内优化主要从哪些方面进行,wordpress 删除emjo,春节网页设计主题,深圳网站设计兴田德润信任高文章目录 一、[]: 一个字符集合二、{}: 重复次数三、特殊符号四、(): 分组五、python代码示例六、注意 正则表达式(regular expression)描述了一种字符串匹配的模式#xff08;pattern#xff09;#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个… 文章目录 一、[]: 一个字符集合二、{}: 重复次数三、特殊符号四、(): 分组五、python代码示例六、注意 正则表达式(regular expression)描述了一种字符串匹配的模式pattern可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 一、[]: 一个字符集合 [] 被称为字符类用于定义一个字符集合匹配该集合中任意一个字符。 在方括号内列出所有可能匹配的字符正则表达式会匹配方括号中任意一个字符。 特殊符号含义-来表示一个字符范围^表示排除方括号中指定的字符例如[ ^0-9] 非数字\d[0-9]\D[^0-9]\w[a-zA-Z0-9_]\W[^a-zA-Z0-9_]\s匹配任意空白字符包括空格、制表符、换行符等\S匹配任意非空白字符\b单词边界匹配单词的开始或结束位置例如\bcat\b匹配独立的单词 cat而不会匹配 category 中的 cat\B非单词边界匹配不在单词开始或结束的位置例如\Bing\B 对于 string 中的 ing 会匹配而对于 sing 则不匹配
二、{}: 重复次数 {} 被称为量词用于指定前面的元素字符、字符类或分组出现的次数。 特殊符号含义{1, } 1次以上*{0,} 0次以上?{0,1} 0次或1次、注跟在 *、、{} 等后面时表示非贪婪匹配.匹配任意一个字符换行除外
三、特殊符号
特殊符号含义^匹配开始的字符串$匹配结尾的字符串\转译符例如\. 匹配 .、\d 匹配任意数字等价于 [0-9]|或者。例如[a|b]
四、(): 分组 分组将多个字符组合成一个整体创建捕获组保存匹配内容创建非捕获组(?:)反向引用\数字 分组将多个字符组合成一个整体
import re# 匹配连续出现两次的 ab
pattern r(ab){2}
text abababc
result re.findall(pattern, text)
print(result) # [ab]创建捕获组保存匹配内容
import re# 匹配日期格式为 年-月-日并捕获年、月、日
pattern r(\d{4})-(\d{2})-(\d{2})
text Today is 2024-10-15.
result re.search(pattern, text)
if result:print(Full match:, result.group(0)) # Full match: 2024-10-15print(Year:, result.group(1)) # Year: 2024print(Month:, result.group(2)) # Month: 10print(Day:, result.group(3)) # Day: 15创建非捕获组(?:)
import re# 使用非捕获组匹配 abc 或 def 后面跟着一个数字
pattern r(?:abc|def)\d
text abc1 def2 ghi3
result re.findall(pattern, text)
print(result) # [abc1, def2]反向引用\数字
import re# 匹配连续出现两次相同的单词
pattern r(\b\w\b)\s\1
text hello hello world
result re.findall(pattern, text)
print(result) # [hello]五、python代码示例
在Python中使用re模块来实现正则表达式。
import re
regex a
string abc# 1. re.search(regex, string)
# 检查这个字符串string是否匹配正则表达式
if re.search(regex, string) is not None:print(string) # abc# 2. results re.findall(regex, string)
# 匹配带正则表达式的那部分字符串
string 2014 was a good year, but 2025 will be better!
years re.findall([1-2][0-9]{3}, string)
print(years) # [2014, 2025]# 3. result.group(0)
# 分组提取见上面分组六、注意
正则表达式里使用\作为转义字符
假如你需要匹配文本中的字符\name编程语言表示的正则表达式需要4个反斜杠\\\\前两个和后两个分别用于在编程语言中转义成反斜杠转换成两个反斜杠后再在正则表达式中转义成一个反斜杠。Python中的原生字符串很好的解决了这个问题这个例子中的正则表达式可以使用r\\表示。同样匹配一个数字的\\d可以写成r\d不需要再担心是否漏写了反斜杠写出来的表达式也更直观。
import reif re.search(\\\\, I have one nee\dle) is not None:print(Match)
else:print(Not Match)import reif re.search(r\\, I have one nee\dle) is not None:print(Match)
else:print(Not Match)