python - python 正则表达式查找至少包含一个字母的字母数字字符串
问题描述
我试图找出匹配 4 个字母数字字符的正则表达式的语法,其中至少有一个字母。每个都应该用: 包裹>
,<
但我不想返回尖括号。
例如,re.findall
在字符串上使用时,>ABCD<>1234<>ABC1<>ABC2
它应该返回['ABCD', 'ABC1']
.
1234
- 没有字母
ABC2
- 没有用尖括号包裹
解决方案
您可以在 python 中使用这个基于前瞻的正则表达式findall
:
(?i)>((?=\d*[a-z])[a-z\d]{4})<
代码:
>>> regex = re.compile(r">((?=\d*[a-z])[a-z\d]{4})<", re.I)
>>> s = ">ABCD<>1234<>ABC1<>ABC2"
>>> print (regex.findall(s))
['ABCD', 'ABC1']
正则表达式详细信息:
re.I
: 启用忽略大小写修饰符>
: 匹配文字字符>
(
: 开始捕获组(?=\d*[a-z])
: 提前断言我们在 0 个或多个数字之后至少有一个字母[a-z\d]{4}
: 匹配 4 个字母数字字符
)
: 结束捕获组<
: 匹配文字字符<
推荐阅读
- python - 将数据框作为 csv 文件从 google colab 导出到 google drive
- c# - C#调用WinApi?
- python - 使用 GPU 在 Python/Numba 中计算前 N 个最近城市的更好方法
- .htaccess - 使用 HTACCESS 从 iindex.php?r=sdft2345 重定向到 dft2345 ,可能吗?
- gradle - 如何在 Kotlin DSL 中的“运行”上设置系统属性
- excel - 为什么步骤 (-1) 给我一个应用程序定义或对象定义的错误,而不是步骤 (-2)
- javascript - 滚动条到达底部后如何执行ajax调用
- python - 使用 re.sub 在单个替换中替换多个表达式
- video - 从视频 ffmpeg/ffprobe 中提取关键帧信息和字节偏移
- python - python 2.7中的字节函数只需要一个参数