如何在Python的第二个下划线处拆分字符串,以便我得到类似这样的内容
name = this_is_my_name_and_its_cool
拆分名称,以便我得到["this_is", "my_name_and_its_cool"]
答案 0 :(得分:1)
假设您有一个包含相同分隔符的多个实例的字符串,并且您希望在第n个分隔符处拆分,而忽略其他分隔符。
这是一个仅使用split
和join
的解决方案,没有复杂的正则表达式。这可能更容易适应其他分隔符,尤其是n
的其他值。
def split_at(s, c, n):
words = s.split(c)
return c.join(words[:n]), c.join(words[n:])
示例:
>>> split_at('this_is_my_name_and_its_cool', '_', 2)
('this_is', 'my_name_and_its_cool')
答案 1 :(得分:0)
我认为你正在尝试基于第二个下划线拆分字符串。如果是,那么您使用了findall
函数。
>>> import re
>>> s = "this_is_my_name_and_its_cool"
>>> re.findall(r'^[^_]*_[^_]*|[^_].*$', s)
['this_is', 'my_name_and_its_cool']
>>> [i for i in re.findall(r'^[^_]*_[^_]*|(?!_).*$', s) if i]
['this_is', 'my_name_and_its_cool']
答案 2 :(得分:0)
print re.split(r"(^[^_]+_[^_]+)_","this_is_my_name_and_its_cool")
试试这个。
答案 3 :(得分:0)
以下语句将名称拆分为字符串列表
a=name.split("_")
你可以使用连接组合你想要的任何字符串,在这种情况下使用前两个单词
b="_".join(a[:2])
c="_",join(a[2:])
也许你可以编写一个小函数,将你想要分割的单词数(n)作为参数
def func(name, n):
a=name.split("_")
b="_".join(a[:n])
c="_".join(a[n:])
return [b,c]
答案 4 :(得分:0)
这是一个快速的&肮脏的方式:
s = 'this_is_my_name_and_its_cool'
i = s.find('_'); i = s.find('_', i+1)
print [s[:i], s[i+1:]]
<强>输出强>
['this_is', 'my_name_and_its_cool']
您可以通过将find()
置于循环中来概括此方法以在第n个分隔符上进行拆分。