我想捕捉单词的第一部分,忽略可选后缀。后缀和前面的文本都由同一类字符组成(也就是说,后缀前面没有分隔符)。你知道吗
我的第一次尝试只捕获了第一个字母:
m = re.search(r'([A-Za-z]+?)(?:Suff)?', 'textSuff')
m.groups()
>>> ('t',)
我只想捕获“text”,但当我使第一个group元素贪婪时,它会捕获整个字符串。你知道吗
m = re.search(r'([A-Za-z]+)(?:Suff)?', 'textSuff')
m.groups()
>>> ('textSuff',)
没有不同的字符来限定后缀是否可行?你知道吗
您需要指定在所有事情之后,要么字符串必须结束,要么必须有一个不可接受的字符。。。。你知道吗
如果您的模式都是由可选模式构建的,请确保您得到的字符数尽可能少。因此,必须至少有一个边界。我想单词boundary
\b
是一种有效的方法(因为您需要匹配单词):见demo
IDEONE DEMO:
输出:
相关问题 更多 >
编程相关推荐