Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除引号以外的字符_Python_Python 3.x - Fatal编程技术网

Python 删除引号以外的字符

Python 删除引号以外的字符,python,python-3.x,Python,Python 3.x,如何删除引号外的所有字符 例如,这是我的字符串 message = 'something "like" this' print( removeFromQuote(message) ) message2 = 'something "like this" thank you!' print( removeFromQuote(message2) ) 然后结果: 像 像这样 如何创建可以执行此操作的函数removeFromQuote 或者将re.sub与

如何删除引号外的所有字符 例如,这是我的字符串

message = 'something "like" this'
print( removeFromQuote(message)  )


message2 = 'something "like this" thank you!'
print( removeFromQuote(message2)  )
然后结果:

像这样

如何创建可以执行此操作的函数removeFromQuote

或者将re.sub与正确的正则表达式一起使用


提前谢谢你

首先,在引号中拆分字符串

message = 'something "like" this'
chunks = message.split('"')
列表中的元素是引号内的文本位,是奇数编号的元素。那就去拿吧

odd_chunks = chunks[1::2]
现在将列表重新连接成一个字符串

result = "".join(odd_chunks)
总而言之:

def removeFromQuote(text):
    return "".join(text.split('"')[1::2])

尝试使用
findall

import re
message = 'something "like this" thank you'
print(re.findall('"(\D+)"',message)[0])
输出:

like this

您可以使用正则表达式:

import re


def removeFromQuote(message):
    return re.findall(r'"(.+?)"', message)
结果如下:

>>> message = 'something "like this" or "like that"'
>>> removeFromQuote(message)
['like this', 'like that']

我已经做了,但是我找不到正确的正则表达式来实现..你接受了这个答案吗?为什么?无意冒犯,但这根本不是一个好的解决方案。对不起,答案对我来说是正确的。但是我更喜欢不导入的原生方式字符串操作,这是最好的,尽管导入库仍然是一个很好的解决方案。没问题。