【问题标题】:.replace() not replacing desired string.replace() 不替换所需的字符串
【发布时间】:2014-08-10 17:16:02
【问题描述】:

我在字符串上使用了一个简单的“.replace()”函数来替换一些没有任何内容的文本:

.replace("('ws-stage-stat', ", '')

我也尝试过使用正则表达式来执行此操作,如下所示:

match3a = re.sub("\(\'ws-stage-stat\', ", "", match3a)

此字符串是从以下网页的源代码中提取的,第 684 行:

http://www.whoscored.com/Regions/252/Tournaments/26

我已将其余代码提取并清理为一些可用的数据,但这最后一点不会合作并且顽固地拒绝被替换。这似乎是一个非常直接的问题,但它对我不起作用。

有什么想法吗?

谢谢

【问题讨论】:

  • 没有必要逃避'。试试\('ws-stage-stat',

标签: python regex


【解决方案1】:

第一个替换应该起作用。确保将替换结果分配到某处,例如:

mystring = mystring.replace("('ws-stage-stat', ", '')

【讨论】:

  • 我的完整语法与上面完全相同,但它仍然无法正常工作。谢谢
【解决方案2】:

我认为您没有正确地转义正则表达式。

这是我的“模式”应用程序吐出的代码:

re.sub("\\(\\'ws-stage-stat\\', ", "", match3a)

快速测试表明它可以正常工作。

【讨论】:

  • 您好,感谢您的回复。为什么在您的示例中使用双反斜杠而不是单反斜杠?我尝试将它添加到我的 Scrapy 代码中,但它仍然没有替换字符串。
  • 出于某种原因,我只能用它来替换单独的 .replace() 语句中的 '('、'-' 和文本正文。奇怪...
  • 您需要反斜杠转义反斜杠,以便 Python 在字符串中仅使用单个反斜杠组装正确的正则表达式。在字符串中使用单个反斜杠会让 Python 认为您想要使用通用(非正则表达式)转义序列,如 \n、\r 等。
  • 反斜杠不在被解析的字符串中,它们正在转义“'”字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 2022-01-22
相关资源
最近更新 更多