我正在尝试创建一个正则表达式来捕获字符串文本中的所有十六进制颜色。我使用的是Python3,这就是我所拥有的:
import re
pattern = re.compile(r"#[a-fA-F\d]{3}([a-fA-F\d]{3})?")
但是,当我在#abcdef
上应用findall
regex方法时,我得到的是:
>>> re.findall(pattern,"#abcdef")
["def"]
有人能解释一下为什么我有这个吗?我真的需要得到["#abcdef"]
先谢谢你
Tags:
根据http://regex101.com:
看起来这个正则表达式在寻找
#(三个字符a到f、a到f或一个数字)(三个字符a到f、a到f或一个数字,可能存在,也可能不存在,如果存在,则是从匹配中返回的)
如果您希望匹配上述整个字符串的任何实例,我建议您改为:
#[a-fA-F\d]{6}
多亏了Andrej Kesely,我得到了问题的答案,那就是:
要绕过此问题,只需将regex从:
收件人:
相关问题 更多 >
编程相关推荐