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:"Calibri",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)
这就是我想做的-
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构建应用程序。