在Python中进行文本处理,尝试在输出中匹配<brackets>
。内部可以包含任何字符,但如果有数字,如果有超过1个单位数字,则括号不匹配。例如......
< 1? >
<12>
<hot 198663 , ? ... @ key \n 6>
... 将匹配,而......
<0 0>
<9653, 8 test 6>
<18str 500 ing 4. 3 – 6>
... 应↑不
我尝试了类似<(?:\d{1}|\d{2,}|[^\d])>
的内容,但实际上并没有这样做。
答案 0 :(得分:2)
您可以使用<[^>]*>
等一般模式,并使用(?!(?:[^>]*\b\d\b){2})
否定前瞻限制它:
r'<(?!(?:[^>]*\b\d\b){2})[^>]*>'
请参阅regex demo
<强>详情
<
- <
(?!(?:[^>]*\b\d\b){2})
- 如果以下序列中恰好出现2次紧接着与当前位置右侧匹配,则会导致匹配失败:
[^>]*
- 除>
\b\d\b
- 一个1位&#34;整个单词&#34; [^>]*
- 除>
>
- >