根据特定字符拼接字符串

时间:2014-03-22 03:34:33

标签: python string splice

我正在寻找一种只检查字符串中某些字符的方法。例如:

#Given the string
s= '((hello+world))'
s[1:')'] #This obviously doesn't work because you can only splice a string using ints

基本上我希望程序在(的第二次出现时开始,然后从那里开始拼接,直到它遇到)的第一次出现。那么也许从那里我可以把它归还给另一个人或其他什么。有解决方案吗

2 个答案:

答案 0 :(得分:1)

你可以这样做:(假设你想要最里面的括号)

s[s.rfind("("):s.find(")")+1]如果你想要“(hello + world)”

s[s.rfind("(")+1:s.find(")")]如果你想要“你好+世界”

答案 1 :(得分:1)

你可以strip括号(在你的情况下,如果它们总是出现在字符串的开头和结尾):

>>> s= '((hello+world))'
>>> s.strip('()')
'hello+world'

另一种选择是使用正则表达式来提取双括号内的内容:

>>> re.match('\(\((.*?)\)\)', s).group(1)
'hello+world'