使用重新扫描来查找双引号中的材料?

2024-05-18 17:41:39 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以使用以下(未记录的)re.Scanner来查找双引号内的所有内容,以便将此类匹配归类为字符串?在

    scanner = re.Scanner([
(r"[-10-9]+", lambda scanner, token:("INTEGER", int(token))),
(r"[A-Za-z]+", lambda scanner, token:("NAME", str(token))),
(r"[:true::false:]+", lambda scanner, token:("BOOL", token)),
(r"[:error:]+", lambda scanner, token:("ERROR", token)),
(r'.', lambda scanner, token: None),
])

Tags: 方法lambda字符串nameretoken内容integer
1条回答
网友
1楼 · 发布于 2024-05-18 17:41:39

只需将字符串regex添加到扫描仪中,如下所示:

>>> import re
>>> scanner = re.Scanner([
(r"[-10-9]+", lambda scanner, token:("INTEGER", int(token))),
(r"[A-Za-z]+", lambda scanner, token:("NAME", str(token))),
(r"[:true::false:]+", lambda scanner, token:("BOOL", token)),
(r"[:error:]+", lambda scanner, token:("ERROR", token)),
(r'".*?"', lambda scanner, token:("STRING", token)),  # added STRING regex
(r'.', lambda scanner, token: None),
])

现在您可以测试它:

^{pr2}$

相关问题 更多 >

    热门问题