如何从字符串中删除 unicode <U+00A6>?
How to remove unicode <U+00A6> from string?
我有一个像这样的字符串:
q <-"<U+00A6> 1000-66329"
我想删除 <U+00A6>
并只获取 1000 66329
。
我尝试使用:
gsub("\u00a6"," ", q,perl=T)
但它没有删除任何内容。我应该如何gsub
才能得到1000 66329
?
如果always是第一个字符,可以试试:
substring("\U00A6 1000-66B29", 2)
如果 R 将字符串打印为 <U+00A6> 1000-66329
而不是 ¦ 1000-66B29
,则 <U+00A6>
将被解释为字符串 "<U+00A6>"
而不是 unicode 字符。然后你可以这样做:
substring("<U+00A6> 1000-66329",9)
两种方式的结果都是:
[1] " 1000-66329"
我们也可以
trimws(gsub("\S+\s+|-", " ", q))
#[1] "1000 66329"
I just want to remove unicode <U+00A6>
which is at the beginning of string.
那么你不需要 gsub
,你可以使用 sub
和 "^\s*<U\+\w+>\s*"
模式:
q <-"<U+00A6> 1000-66329"
sub("^\s*<U\+\w+>\s*", "", q)
图案详情:
^
- 字符串开头
\s*
- 零个或多个白色spaces
<U\+
- 文字字符序列 <U+
\w+
- 1 个或多个字母、数字或下划线
>
- 文字 >
\s*
- 零个或多个白色spaces.
如果您还需要将 -
替换为 space,请添加 |-
替代项并使用 gsub
(因为现在我们希望有多个替换项并且替换项必须成为 space - ):
trimws(gsub("^\s*<U\+\w+>|-", " ", q))
与其删除,不如将其转换为适当的格式...您必须像这样将本地设置为 UTF-8:
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")
也许您会看到以下消息:
Warning message:
In Sys.setlocale("LC_CTYPE", "en_US.UTF-8") :
OS reports request to set locale to "en_US.UTF-8" cannot be honored
在这种情况下,您应该使用 stringi::stri_trans_general(x, "zh")
这里的"zh"表示"chinese"。您应该知道必须转换成哪种语言。就是这样
我有一个像这样的字符串:
q <-"<U+00A6> 1000-66329"
我想删除 <U+00A6>
并只获取 1000 66329
。
我尝试使用:
gsub("\u00a6"," ", q,perl=T)
但它没有删除任何内容。我应该如何gsub
才能得到1000 66329
?
如果always是第一个字符,可以试试:
substring("\U00A6 1000-66B29", 2)
如果 R 将字符串打印为 <U+00A6> 1000-66329
而不是 ¦ 1000-66B29
,则 <U+00A6>
将被解释为字符串 "<U+00A6>"
而不是 unicode 字符。然后你可以这样做:
substring("<U+00A6> 1000-66329",9)
两种方式的结果都是:
[1] " 1000-66329"
我们也可以
trimws(gsub("\S+\s+|-", " ", q))
#[1] "1000 66329"
I just want to remove unicode
<U+00A6>
which is at the beginning of string.
那么你不需要 gsub
,你可以使用 sub
和 "^\s*<U\+\w+>\s*"
模式:
q <-"<U+00A6> 1000-66329"
sub("^\s*<U\+\w+>\s*", "", q)
图案详情:
^
- 字符串开头\s*
- 零个或多个白色spaces<U\+
- 文字字符序列<U+
\w+
- 1 个或多个字母、数字或下划线>
- 文字>
\s*
- 零个或多个白色spaces.
如果您还需要将 -
替换为 space,请添加 |-
替代项并使用 gsub
(因为现在我们希望有多个替换项并且替换项必须成为 space -
trimws(gsub("^\s*<U\+\w+>|-", " ", q))
与其删除,不如将其转换为适当的格式...您必须像这样将本地设置为 UTF-8:
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")
也许您会看到以下消息:
Warning message:
In Sys.setlocale("LC_CTYPE", "en_US.UTF-8") :
OS reports request to set locale to "en_US.UTF-8" cannot be honored
在这种情况下,您应该使用 stringi::stri_trans_general(x, "zh")
这里的"zh"表示"chinese"。您应该知道必须转换成哪种语言。就是这样