在 R 中查找字母数字
Finding alphanumeric in R
我有俄语字符向量。请参阅下面的示例向量 -
x = "nНозологические единицы \r\n В20 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nинфекционных и паразитарных болезней \r\n В21 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nзлокачественных новообразований \r\n В22 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих уточненных болезней \r\n В78.1 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих состояний \r\n В24 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], неуточненная \r\n Z21 Бессимптомный инфекционный статус, вызванный вирусом иммунодефицита человека"
我想提取这些值 - B20、B21、B22、B78.1、B24、Z21。我正在使用下面的代码 -
gsub("[^0-9A-Za-z///' ]", "", x)
但是它返回了错误的结果。
[1] "n 20 21 22 781 24 Z21 "
这是一个基本的 R 方法,使用 gregexpr
到 return 个位置和 regmatches
来提取文本的匹配部分。
unlist(regmatches(x, gregexpr("[ВZ][27][[:digit:].]+", x)))
[1] "В20" "В21" "В22" "В78.1" "В24" "Z21"
请注意 "B" 不是标准的 ascii "B"。我从向量中复制并粘贴了一个来让它工作。您可以使用 utfToInt
:
来查看
ascii "B":
utf8ToInt("B")
[1] 66
x"B"中的
utf8ToInt("В")
[1] 1042
使用 stringr
,您可以将 str_extract_all
与此正则表达式一起使用
x = "nНозологические единицы \r\n В20 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nинфекционных и паразитарных болезней \r\n В21 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nзлокачественных новообразований \r\n В22 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих уточненных болезней \r\n В78.1 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих состояний \r\n В24 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], неуточненная \r\n Z21 Бессимптомный инфекционный статус, вызванный вирусом иммунодефицита человека"
stringr::str_extract_all(x, "[:alpha:][[:digit:]\.]+")
#> [[1]]
#> [1] "В20" "В21" "В22" "В78.1" "В24" "Z21"
关于正则表达式:
[:alpha:]
表示任意字母字符
[[:digit:]\.]
后跟任何数字或 .
字符
+
前一次或多次
当您想提取的内容发生变化时更改正则表达式
我有俄语字符向量。请参阅下面的示例向量 -
x = "nНозологические единицы \r\n В20 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nинфекционных и паразитарных болезней \r\n В21 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nзлокачественных новообразований \r\n В22 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих уточненных болезней \r\n В78.1 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих состояний \r\n В24 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], неуточненная \r\n Z21 Бессимптомный инфекционный статус, вызванный вирусом иммунодефицита человека"
我想提取这些值 - B20、B21、B22、B78.1、B24、Z21。我正在使用下面的代码 -
gsub("[^0-9A-Za-z///' ]", "", x)
但是它返回了错误的结果。
[1] "n 20 21 22 781 24 Z21 "
这是一个基本的 R 方法,使用 gregexpr
到 return 个位置和 regmatches
来提取文本的匹配部分。
unlist(regmatches(x, gregexpr("[ВZ][27][[:digit:].]+", x)))
[1] "В20" "В21" "В22" "В78.1" "В24" "Z21"
请注意 "B" 不是标准的 ascii "B"。我从向量中复制并粘贴了一个来让它工作。您可以使用 utfToInt
:
ascii "B":
utf8ToInt("B")
[1] 66
x"B"中的
utf8ToInt("В")
[1] 1042
使用 stringr
,您可以将 str_extract_all
与此正则表达式一起使用
x = "nНозологические единицы \r\n В20 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nинфекционных и паразитарных болезней \r\n В21 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nзлокачественных новообразований \r\n В22 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих уточненных болезней \r\n В78.1 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], проявляющаяся в виде \r\nдругих состояний \r\n В24 Болезнь, вызванная вирусом иммунодефицита человека [ВИЧ], неуточненная \r\n Z21 Бессимптомный инфекционный статус, вызванный вирусом иммунодефицита человека"
stringr::str_extract_all(x, "[:alpha:][[:digit:]\.]+")
#> [[1]]
#> [1] "В20" "В21" "В22" "В78.1" "В24" "Z21"
关于正则表达式:
[:alpha:]
表示任意字母字符[[:digit:]\.]
后跟任何数字或.
字符+
前一次或多次
当您想提取的内容发生变化时更改正则表达式