Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 - Fatal编程技术网

Python 替换子字符串的最简单方法

Python 替换子字符串的最简单方法,python,Python,当我不知道要查找的确切子字符串,而只知道分隔字符串时,替换字符串中的子字符串的最简单方法是什么?例如,如果我有以下内容: mystr = 'wordone wordtwo "In quotes"."Another word"' 我基本上想删除第一个被引用的单词(包括引号)和后面的句点(.),因此生成的字符串是: 'wordone wordtwo "Another word"' 基本上,我想删除第一个被引用的单词和引号以及下面的句号。您正在使用以下命令在此处查找正则表达式: 该模式匹配一个文字

当我不知道要查找的确切子字符串,而只知道分隔字符串时,替换字符串中的子字符串的最简单方法是什么?例如,如果我有以下内容:

mystr = 'wordone wordtwo "In quotes"."Another word"'
我基本上想删除第一个被引用的单词(包括引号)和后面的句点(.),因此生成的字符串是:

'wordone wordtwo "Another word"'

基本上,我想删除第一个被引用的单词和引号以及下面的句号。

您正在使用以下命令在此处查找正则表达式:

该模式匹配一个文字引号,后跟1个或多个非引号字符,后跟另一个引号和句号

演示:


您正在使用以下命令在此处查找正则表达式:

该模式匹配一个文字引号,后跟1个或多个非引号字符,后跟另一个引号和句号

演示:


是的,但python正则表达式的工作方式似乎有点不同,我不是正则表达式专家。我还尝试了如下操作:mystr[0:mystr.find(“”,1)]+mystr[mystr.find(“”,1)+1:]@格雷格:正则表达式是解决这类问题的正确方法。你不必是专家,从这里建议的正则表达式开始,了解它的工作原理。相信我,它们非常有用,学习如何表达简单的模式会有回报。@JoranBeasley:simple
.find()也是如此
调用;嵌套引号在任何情况下都需要正确的解析器。@GregH:使用
.find()
可以工作,前提是您记住第一个引号的位置,并将其作为第二个
调用的起点。find()
调用(加上一个)。正则表达式在这里做得很好;除非你嵌套引号,否则它是一个很好的工具。@MartijnPieters是的,我知道……我只是觉得在具体讨论有限autamata和引号时值得一提是的,但python正则表达式的工作方式似乎有点不同,我不是正则表达式专家。我也尝试过这样做方法如下:mystr[0:mystr.find(''',1)]+mystr[mystr.find('',1)+1::@GregH:正则表达式是解决此类问题的正确方法。您不必是专家,从这里建议的正则表达式开始,了解它的工作原理。相信我,它们非常有用,学习如何表达简单的模式会有回报的+这个答案是1。@JoranBeasley:简单的
.find()
调用也是如此;嵌套引号在任何情况下都需要一个正确的解析器。@GregH:如果您记住第一个引号的位置并将其作为第二个
.find()
调用(加上一个)的起点,则使用
.find()
可以工作。正则表达式在这里做得很好;除非你把你的引用嵌套起来,否则这是一个很好的工具。@MartijnPieters是的,我知道。。。我只是觉得在具体讨论有限autamata和引号时值得一提
import re

quoted_plus_fullstop = re.compile(r'"[^"]+"\.')
result = quoted_plus_fullstop.sub('', mystr)
>>> import re
>>> mystr = 'wordone wordtwo "In quotes"."Another word"'
>>> quoted_plus_fullstop = re.compile(r'"[^"]+"\.')
>>> quoted_plus_fullstop.sub('', mystr)
'wordone wordtwo "Another word"'