我正在使用 python 的 re.findall 方法来查找输入字符串中某个字符串值的出现。例如,从“ABCdef”字符串中搜索,我有两个搜索要求。
- 查找从单个大写字母开始的字符串。
- 在 1 之后找到包含所有大写字母的字符串。
例如输入字符串和预期输出将是:
'USA' -- output: ['USA']
'BObama' -- output: ['B', 'Obama']
'Institute20CSE' -- output: ['Institute', '20', 'CSE']
所以我的期望来自
>>> matched_value_list = re.findall ( '[A-Z][a-z]+|[A-Z]+' , 'ABCdef' )
是返回['AB', 'Cdef']
。
但似乎没有发生。我得到的是['ABC']
作为返回值,它将正则表达式的后半部分与完整字符串匹配。
那么有什么方法可以忽略找到的匹配项。因此,曾经'Cdef'
与'[A-Z][a-z]+'
. 正则表达式的第二部分(即'[A-Z]+'
)仅与剩余字符串匹配'AB'
?