python实现读取字符串某个字母前后数值
问题目录
问题1:python 读取字符串中x前面的数值,比如“12机械3f机械46x45g”,读取26
问题1:解决方案 ↓
import re
s = "12机械3f机械46x45g"
match = re.search(r'\d+(?=x)', s)
if match:
print(int(match.group())) # 输出结果为26。
else:
print("未找到匹配的数值")
用正则表达式d+(?=x)
匹配以x为前导的数字,(?=x)
是正则表达式的positive lookahead部分,表示x是匹配结果的一部分,但不作为结果的一部分输出。
问题2:python 读取字符串中x后面的数值,比如“12机械3f机械46x45g”,读取45
问题2:解决方案 ↓
import re
text = "12机械3f机械46x45g"
match = re.search(r'x(\d+)', text)
if match:
num = match.group(1)
print(num) # 输出 45
else:
print("未找到匹配的数值")
解释一下正则表达式 x(\d+)
:
-
x
表示匹配字母 x; -
(\d+)
表示匹配一个或多个数字,并使用括号将其捕获为一个分组。
使用 re.search()
函数可以在字符串中查找第一个满足正则表达式的匹配项。如果找到,则使用 match.group(1)
获取分组中的内容。如果没有找到匹配项,则输出提示信息。