提取包括单个角度括号的令牌

时间:2015-01-23 02:06:39

标签: python regex

我正在尝试提取包含尖括号的标记,例如123K>L>字符无法解析为尖括号。例如,如果我有以下内容,则无效:

pattern=[(r'[0-9]+[a-z]>[a-z]','PATTERN')]

或者如果我使用反斜杠来消除尖括号的作用:

pattern=[(r'[0-9]+[a-z](\>)[a-z]','PATTERN')]

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

问题不在于角架; >在像这样的模式中使用时没有任何特殊含义。

相反,问题是字符集[a-z]仅匹配小写字母az。但是,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]