我不明白为什么会得到这个结果,
>>> import re
>>> re.compile("([abc])+").search('abc').groups()
('c',)
>>>
任何人都可以像this一样逐步解释这个正则表达式的工作机制吗?
答案 0 :(得分:1)
([abc])+
是一个贪婪的正则表达式。即组+
之后,组将重复整个捕获组一次或多次,这将导致仅捕获最后匹配的字符。您可以考虑这个(a)+
简单示例。如果连续放置多个a
,此正则表达式将匹配所有a
并仅捕获最后a
个a
。如果输入只包含一个a
,则会捕获a
,如果a
未连续放置,则每个([abc]+)
&#39 ; s必须被捕获。
如果您使用此+
,则abc
将仅重复一次或多次字符类。所以这将捕获整个(a+)
。这种情况的一个简单示例是re.search(regex, string).groups()
。
最后init(playerType: PlayerType) {
self.playerType = playerType
spriteTexture = SKTexture(imageNamed: playerType.simpleDescription())
sprite = SKSpriteNode(texture: spriteTexture)
sprite.name = playerCategoryName
sprite.zPosition = 10
}
会返回所有捕获的字符。