如何从字符串中删除unicode <U + 00A6>?

use*_*913 6 regex r gsub

我有一个字符串:

q <-"<U+00A6>  1000-66329"
Run Code Online (Sandbox Code Playgroud)

我想删除<U+00A6>并获取1000 66329.

我试过用:

gsub("\u00a6"," ", q,perl=T)
Run Code Online (Sandbox Code Playgroud)

但它并没有删除任何东西.我该怎么办gsub才能获得1000 66329?

Wik*_*żew 6

我只想删除<U+00A6>字符串开头的 unicode。

那么你不需要 a gsub,你可以使用subwith"^\\s*<U\\+\\w+>\\s*"模式:

q <-"<U+00A6>  1000-66329"
sub("^\\s*<U\\+\\w+>\\s*", "", q)
Run Code Online (Sandbox Code Playgroud)

图案详情:

  • ^- 字符串的开头
  • \\s*- 零个或多个空格
  • <U\\+- 文字字符序列<U+
  • \\w+- 1个或多个字母、数字或下划线
  • >- 字面意思>
  • \\s* - 零个或多个空格。

如果您还需要将 替换-为空格,请添加|-替代项并使用gsub(因为现在我们预计有多个替换项,并且替换项必须是空格 - akrun 的答案也是如此):

trimws(gsub("^\\s*<U\\+\\w+>|-", " ", q))
Run Code Online (Sandbox Code Playgroud)

查看R 在线演示