Python 替换R中段落中的确切句子

Python 替换R中段落中的确切句子,python,html,r,regex,string,Python,Html,R,Regex,String,我试图匹配段落中的句子并替换它们 以下是数据帧- fulltext = c(rep("<span style=\"font-family:Calibri\"><span style=\"font-size:18px\">__ - Now</span>\r\n\r\n<strong><span style=\"font-size:24px\">X - Soon</span></strong>\r\n\r\n<

我试图匹配段落中的句子并替换它们

以下是数据帧-

fulltext = c(rep("<span style=\"font-family:Calibri\"><span style=\"font-size:18px\">__ - Now</span>\r\n\r\n<strong><span style=\"font-size:24px\">X - Soon</span></strong>\r\n\r\n<span style=\"font-size:18px\">__ - N</span></span><span style=\"font-family:Calibri\"><span style=\"font-size:18px\">ext Scheduled Maintenance or Inspection</span></span>",3),
  "<span style=\"font-size:20px\"><strong><span style=\"font-family:&quot;Calibri&quot;,sans-serif\">What is Triggering this Expert Alert?</span></strong></span>")

cleantext = c("__ - Now", "X - Soon", "ext Scheduled Maintenance or Inspection", "What is Triggering this Expert Alert?")

replacetext = c("__ - Nu", "X - Binnenkort", "ext Gepland onderhoud of inspectie", "Wat veroorzaakt deze expertwaarschuwing?")
data5 = data.frame(fulltext, cleantext, replacetext)
fulltext=c(rep(“\uuuuuuu-现在\r\n\r\nX-Soon\r\n\r\n\uuuuu-下一次计划维护或检查”,3),
“是什么触发此专家警报?”)
cleantext=c(“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
replacetext=c(“\uuuuuuuuu-Nu”、“X-Binnenkort”、“ext Gepland onderhoud of inspectie”、“Wat veroorzaakt deze expertwaarschuwing?”)
data5=data.frame(全文、cleantext、replacetext)
这就是我想做的-

  • 从课文中摘取这个句子
  • 与全文匹配
  • 将cleantext替换为全文中的replacetext
  • 比如说是什么触发此daert警报?

    以上是完整的段落,我想用Wat veroorzaakt deze expertwaarschuwing?

    输出应为- 专家瓦斯楚温在哪里?

    这就是我迄今为止所尝试的。现在我尝试了几种方法

  • 使用字符串替换
  • 尝试在句子的开头和结尾添加“^”和“$”,然后使用gsub将其作为正则表达式模式匹配。但我认为这只适用于文字。下面是我的尝试,但没有成功
    data5$cleantext2=paste0(“^”,data5$cleantext2,“$”)
    
    gsub(data1$Cleantext2[1],data1$replacetext[1],data1$fulltext[1])
    无需循环。另外,您的
    ^
    $
    也无法工作,因为您的替换模式是中间字符串。您可以使用固定模式缓解错误匹配

    既然您希望将所有模式/替换应用于
    全文
    (而不仅仅是一对一),那么我认为您可以
    减少它

    Reduce(函数(s,ptn)gsub(ptn[1],ptn[2],s,fixed=TRUE),
    映射(c、cleantext、replacetext),
    init=全文)
    #[1]“\uuuuu-Nu\r\n\r\nX-Binnenkort\r\n\r\n\uuuuuu-下一个检查计划”
    #[2]“\uuuuu-Nu\r\n\r\nX-Binnenkort\r\n\r\n\uuuuuuu-下一个检查计划”
    #[3]“\uuuuu-Nu\r\n\r\nX-Binnenkort\r\n\r\n\uuuuuuu-下一个检查计划”
    #[4]“专家瓦斯楚温在哪里?
    无需循环。另外,您的
    ^
    $
    也无法工作,因为您的替换模式是中间字符串。您可以使用固定模式缓解错误匹配

    既然您希望将所有模式/替换应用于
    全文
    (而不仅仅是一对一),那么我认为您可以
    减少它

    Reduce(函数(s,ptn)gsub(ptn[1],ptn[2],s,fixed=TRUE),
    映射(c、cleantext、replacetext),
    init=全文)
    #[1]“\uuuuu-Nu\r\n\r\nX-Binnenkort\r\n\r\n\uuuuuu-下一个检查计划”
    #[2]“\uuuuu-Nu\r\n\r\nX-Binnenkort\r\n\r\n\uuuuuuu-下一个检查计划”
    #[3]“\uuuuu-Nu\r\n\r\nX-Binnenkort\r\n\r\n\uuuuuuu-下一个检查计划”
    #[4]“专家瓦斯楚温在哪里?
    $
    将挫败您的尝试,因为在它之前和之后似乎都有一些东西。您可以改为尝试单词边界,可能是
    paste0(\\b),data5$cleantext,\\b”)
    。顺便说一句:
    gsub
    一次只能处理一种模式;如果您需要在整个框架中执行此操作,可能是
    mapply(gsub,data1$Clean2,data1$dutch,data1$en_us)
    。是的,我尝试使用mapply应用gsub。这不是我想要的方式。我现在将尝试粘贴0解决方案。@r2evans添加\\b不起作用-
    paste0(\\b),data5$cleantext,\\b”)
    哦,我原以为这是一个正则表达式解决方案。我正在用R和Python两种语言构建应用程序。
    ^
    $
    将挫败您的尝试,因为它前后似乎都有一些东西。您可以改为尝试单词边界,可能是
    paste0(\\b),data5$cleantext,\\b”)
    。顺便说一句:
    gsub
    一次只能处理一种模式;如果您需要在整个框架中执行此操作,可能是
    mapply(gsub,data1$Clean2,data1$dutch,data1$en_us)
    。是的,我尝试使用mapply应用gsub。这不是我想要的方式。我现在将尝试粘贴0解决方案。@r2evans添加\\b不起作用-
    paste0(\\b),data5$cleantext,\\b”)
    哦,我原以为这是一个正则表达式解决方案。我正在用R和Python构建应用程序。