使用 string 删除字符串中的括号、文本逗号和逗号
Removing parentheses, text proceeding comma, and the comma in a string using string
我有一个包含人名和城市的字符串。格式如下:
mock <- "Joe Smith (Cleveland, OH)"
我只想保留状态缩写,所以在这种情况下,唯一剩下的字符串是 "OH"
我可以去掉括号和逗号
[(.*?),]
这给了我:
"Joe Smith Cleveland OH"
但我不知道如何将所有这些组合起来。为了记录,所有的记录看起来都是这样的,它以“,两个字母的大写州缩写”结尾(例如:“,OH”,“,KY”,“,MD”等)
您可以使用
mock <- "Joe Smith (Cleveland, OH)"
sub(".+,\s*([A-Z]{2})\)$","\1",mock)
## => [1] "OH"
## With stringr:
str_extract(mock, "[A-Z]{2}(?=\)$)")
详情
.+,\s*([A-Z]{2})\)$
- 尽可能多地匹配任何 1+ 个字符,然后是 ,
、0+ 个空格,然后将 2 个大写 ASCII 字母捕获到第 1 组(用 </code> 从替换模式),然后在字符串 </li> 的末尾匹配 <code>)
[A-Z]{2}(?=\)$)
- 如果在字符串末尾后跟 )
,则匹配 2 个大写 ASCII 字母。
这个怎么样。如果它们的格式都相同,那么这应该可以。
mock <- "Joe Smith (Cleveland, OH)"
substr(mock, (nchar(mock) - 2), (nchar(mock) - 1))
如果一般情况是状态在倒数第二个和倒数第三个字符然后匹配所有,.*
,然后是两个字符的捕获组(..)
,然后是另一个字符.
并将其替换为捕获组:
sub(".*(..).", "\1", mock)
## [1] "OH"
我有一个包含人名和城市的字符串。格式如下:
mock <- "Joe Smith (Cleveland, OH)"
我只想保留状态缩写,所以在这种情况下,唯一剩下的字符串是 "OH"
我可以去掉括号和逗号
[(.*?),]
这给了我:
"Joe Smith Cleveland OH"
但我不知道如何将所有这些组合起来。为了记录,所有的记录看起来都是这样的,它以“,两个字母的大写州缩写”结尾(例如:“,OH”,“,KY”,“,MD”等)
您可以使用
mock <- "Joe Smith (Cleveland, OH)"
sub(".+,\s*([A-Z]{2})\)$","\1",mock)
## => [1] "OH"
## With stringr:
str_extract(mock, "[A-Z]{2}(?=\)$)")
详情
.+,\s*([A-Z]{2})\)$
- 尽可能多地匹配任何 1+ 个字符,然后是,
、0+ 个空格,然后将 2 个大写 ASCII 字母捕获到第 1 组(用</code> 从替换模式),然后在字符串 </li> 的末尾匹配 <code>)
[A-Z]{2}(?=\)$)
- 如果在字符串末尾后跟)
,则匹配 2 个大写 ASCII 字母。
这个怎么样。如果它们的格式都相同,那么这应该可以。
mock <- "Joe Smith (Cleveland, OH)"
substr(mock, (nchar(mock) - 2), (nchar(mock) - 1))
如果一般情况是状态在倒数第二个和倒数第三个字符然后匹配所有,.*
,然后是两个字符的捕获组(..)
,然后是另一个字符.
并将其替换为捕获组:
sub(".*(..).", "\1", mock)
## [1] "OH"