这是一个简单的扫描器,它根据特定的规则标记文本,并标记标记。在
示例:
import re
def alpha(scanner,token):
return token, 'a'
def numeric(scanner,token):
return token,'rn'
def punctuation(scanner,token):
return token, 'p'
def superscript(scanner,token):
return token, 'sn'
scanner = re.Scanner([
(u"[a-zA-Z]+", alpha),
(u"[.,:;!?]", punctuation),
(u"[0-9]+", numeric),
(u"[\xb9\u2070\xb3\xb2\u2075\u2074\u2077\u2076\u2079\u2078]", superscript),
(r"[\s\n]+", None), # whitespace, newline
])
tokens, _ = scanner.scan("This is a little test? With 7,9 and 6.")
print tokens
输出:
^{pr2}$ps!定义的函数可能会尝试进一步对令牌进行分类。在
re.Scanner
按照提供的顺序匹配模式。因此,您可以在末尾提供一个非常通用的模式来捕获“未知”字符:^{2}$
收益率
您的一些模式是}。在
unicode
,还有一个是str
。在Python2中,模式和要匹配的字符串可以是unicode
或{但是,in Python3:
因此,最好不要把它们混在一起,即使是在Python中。在
我认为您的代码非常简单(除了
superscript
regex。哎呀。我不知道有什么图书馆能使它更简单。在相关问题 更多 >
编程相关推荐