【发布时间】:2021-03-17 05:17:53
【问题描述】:
我想知道是否可以得到一些帮助。
我正在尝试匹配所有单词,但我有一些要求:
- 单词是括号内的任何有效内容(如函数中),但函数本身不应匹配
- 单词的结尾或开头可能有数字
- 不保证单个空格(或除某些运算符之外的任何空格)
例如:y ~ word1+word2 - 3word:word4 ** word5 + Function(word6)
返回应该是["y", "word1", "word2", "3word", "word4", "word5", "word6"]。
到目前为止,我得到的 regexp = "(\d?[a-zA-Z]+\d?)+" 几乎都匹配,除了列表中有一个错误的 Function。
一个完整的可运行示例:
import string
from typing import List
import re
q_str = "y ~ word1+word2 - 3word:word4 ** word5 + Function(word6)"
regexp = "(\d?[a-zA-Z]+\d?)+"
re.findall(regexp, q_str)
【问题讨论】:
-
为什么
Function会失败?您的哪一项要求没有通过? -
啊,抱歉。我已经更新了规则 1 以反映这一点。谢谢你接听!