2024-06-14 04:50:47 发布
网友
我有以下短语,我想把它们搭配起来:
"De la Sota: Hello" -> "De la Sota""Guini: Hello" -> "Guini""Prat Gay: Hello" -> "Prat Gay"
"De la Sota: Hello" -> "De la Sota"
"Guini: Hello" -> "Guini"
"Prat Gay: Hello" -> "Prat Gay"
我正在使用r"(\w+):",但它只匹配:之前的最后一个单词。你知道吗
r"(\w+):"
:
str.split(":")[0]应该可以工作,其中str是您要拆分的字符串。你知道吗
str.split(":")[0]
str
>>> str = "De la Sota: Hello" >>> str.split(":")[0] 'De la Sota'
其工作原理是将字符串拆分为一个列表,其中参数是分隔符。如果将冒号指定为分隔符,则会将字符串拆分为由冒号分隔的单个短语列表。[0]只是引用列表的第一个值,这是您想要的。你知道吗
[0]
只需使用此模式:
/^(.*):/gm
现在$1包含了您需要的内容。你知道吗
$1
注意到我非常确定有一个比regex更好的方法来实现这一点。但我不是Python专家。你知道吗
如果这正是您所拥有的,那么您可以使用一个否定集来摆脱:、 (using \s——或者如果它是一个使用\t)和Helo的制表符,因为它是一个集合。至于名字,一些姓氏包含-,或 we need more than one occurrence of a character (\w)来构成名字:
\s
\t
-
\w
import re string = ''' De la Sota: Hello Guini: Hello Prat Gay: Hello ''' print(re.findall(r'[-\w ]+[^:\sHelo]', string))
给出以下答案:
[' De la Sota', 'Guini', 'Prat Gay']
您应该使用re.findall而不是re.match,因为前者查找整个字符串,后者只与第一行匹配,并查看字符串是否以它开头。你知道吗
re.findall
re.match
str.split(":")[0]
应该可以工作,其中str
是您要拆分的字符串。你知道吗其工作原理是将字符串拆分为一个列表,其中参数是分隔符。如果将冒号指定为分隔符,则会将字符串拆分为由冒号分隔的单个短语列表。
[0]
只是引用列表的第一个值,这是您想要的。你知道吗只需使用此模式:
现在
$1
包含了您需要的内容。你知道吗Online Demo
注意到我非常确定有一个比regex更好的方法来实现这一点。但我不是Python专家。你知道吗
如果这正是您所拥有的,那么您可以使用一个否定集来摆脱
:
、(using
\s
——或者如果它是一个使用\t
)和Helo的制表符,因为它是一个集合。至于名字,一些姓氏包含-
,或we need more than one occurrence of a character (
\w
)来构成名字:给出以下答案:
您应该使用
re.findall
而不是re.match
,因为前者查找整个字符串,后者只与第一行匹配,并查看字符串是否以它开头。你知道吗相关问题 更多 >
编程相关推荐