我正在尝试提取包含尖括号的标记,例如123K>L
但>
字符无法解析为尖括号。例如,如果我有以下内容,则无效:
pattern=[(r'[0-9]+[a-z]>[a-z]','PATTERN')]
或者如果我使用反斜杠来消除尖括号的作用:
pattern=[(r'[0-9]+[a-z](\>)[a-z]','PATTERN')]
有什么想法吗?
答案 0 :(得分:1)
问题不在于角架; >
在像这样的模式中使用时没有任何特殊含义。
相反,问题是字符集[a-z]
仅匹配小写字母a
到z
。但是,123K>L
的示例字符串使用大写字母。要匹配这些,请使用字符集[A-Za-z]
。
演示:
>>> import re
>>> re.match('[0-9]+[A-Za-z]>[A-Za-z]', '123K>L')
<_sre.SRE_Match object; span=(0, 6), match='123K>L'>
>>>
答案 1 :(得分:1)
您的字符串似乎有大写字母,这可能是问题,请尝试以下方法:
[0-9]+[A-Z]>[A-Z]
或者你可以简单地使用内联不区分大小写的修饰符来允许两者。
(?i)[0-9]+[a-z]>[a-z]