我似乎无法解决这个问题。我有许多不同的弦,它们总是不同的。我需要更换他们虽然结束,但他们总是不同的长度。以下是一对字符串的示例:
string1 = "thisisnumber1(111)"
string2 = "itsraining(22252)"
string3 = "fluffydog(3)"
现在当我把这些打印出来时,它当然会打印以下内容:
thisisnumber1(111)
itsraining(22252)
fluffydog(3)
不过,我希望打印的内容如下:
thisisnumber1
itsraining
fluffydog
我想它删除括号中的每一个字符串的一部分,但我不知道有什么意义的长度总是在变化。谢谢
你的另一个选择是使用正则表达式,它可以让你更精确地控制你想要得到什么。你知道吗
正在发生的事情的分解:
regex = r"(.+)\(\d+\)"
是正则表达式,是要查找的字符串的公式.+
表示匹配1个或多个除换行符以外的任何类型的字符\d+
表示匹配一个或多个数字\(
和\)
是“(”和“)”字符将
.+
放在圆括号中会将该字符串序列放在一个组中,这意味着您希望以后能够访问该组字符。我们不把序列\(\d+\)
放在一个组中,因为我们不关心那些字符。你知道吗regex.match(regex, string1).groups()
给出string1
中属于组的每个子串。因为您只需要1个子字符串,所以只需要访问第0个元素。你知道吗如果您想了解更多,在教程的点here上有一个很好的正则表达式教程。你知道吗
您可以使用^{} 来实现:
str.rsplit
将字符串从右向左拆分,而不是像str.split
那样从左向右拆分。因此,我们从右到左拆分(
上的字符串,然后检索索引0
处的元素(第一个元素)。这将是每个字符串末尾的(...)
之前的所有内容。你知道吗既然你在评论中说:
因此,paren之间总是有数字,我建议您使用正则表达式模块来删除它们:
印刷品:
相关问题 更多 >
编程相关推荐