删除行尾和新 space 之间的数字

Remove number between end of row and new space

我正在尝试删除引号内行开头的数字。

> g<-"My name is Paul.\nI like playing football.\n\"55012\" And that's all."
> cat(g)
My name is Paul.
I like playing football.
"55012" And that's all.
> gsub("[\r\n]\"+[[:digit:]][^[[:space:]]]*"," ",g)
[1] "My name is Paul.\nI like playing football. 012\" And that's all."

这应该可以,但我不知道为什么只替换 \n"55 而不是整个数字。

您用几个多余的 [...] 关闭了括号表达式。 [^[[:space:]]][^[[:space:]]] 模式的序列,匹配 [ 和空格以外的任何字符,然后是 ] 字符。

然而,即使这样也不足以完全解决问题。

您可以使用

gsub("(^|\n)\"+[0-9]+\"+\s*","\1", g)

R demo

图案详情

  • (^|\n) - 在第 1 组中捕获的字符串或换行符的开头(从替换模式中引用 </code>)</li> <li><code>\"+ - 一个或多个双引号
  • [0-9]+ - 1+ 位数
  • \"+ - 一个或多个双引号
  • \s* - 0+ 个空格。

regex demo