MJB*_*MJB 2 python regex python-3.x
我试图弄清楚正则表达式的语法,它将匹配4个字母数字字符,其中至少有一个字母.每个人都应该由包裹:>
和<
,但我不希望返回尖括号.
例如,当使用re.findall
字符串时,>ABCD<>1234<>ABC1<>ABC2
它应该返回['ABCD', 'ABC1']
.
1234
- 没有信
ABC2
- 没有用尖括号包裹
您可以在python中使用这个基于前瞻性的正则表达式findall
:
(?i)>((?=\d*[a-z])[a-z\d]{4})<
Run Code Online (Sandbox Code Playgroud)
码:
>>> regex = re.compile(r">((?=\d*[a-z])[a-z\d]{4})<", re.I)
>>> s = ">ABCD<>1234<>ABC1<>ABC2"
>>> print (regex.findall(s))
['ABCD', 'ABC1']
Run Code Online (Sandbox Code Playgroud)
RegEx详细信息:
re.I
:启用忽略大小写修饰符>
:匹配文字字符 >
(
:开始捕获组
(?=\d*[a-z])
:Lookahead断言我们在0位或更多位后至少有一个字母[a-z\d]{4}
:匹配4个字母数字字符)
:结束捕获组<
:匹配文字字符 <
归档时间: |
|
查看次数: |
765 次 |
最近记录: |