搜索和替换字符串
Search and replace string
需要命令帮助来替换字符串中从开头到第一个数字之前的文本。我有一个数据框,在单个字段中包含所有这些地名和地址,但只需要从字符串中提取地址。
使用此 gsub
命令替换字符串,
gsub("^.*?\d","","Gilroy Plant Place 777 Morello Ave")
[1] "77 Morello Ave"
要求输出:
777 Morello Ave
gsub(".*?(\d.*)","\1","Gilroy Plant Place 777 Morello Ave")
使用正向预测:
^.*?(?=\d)
正向先行的作用是先于字符串查看子模式是否匹配。如果是,则匹配子模式之前的内容。在上面的正则表达式中,^.*?
只有在它后面的字符串匹配 \d
时才会匹配,但是 \d
部分不会在匹配中。
我会使用 \D
并且这个东西匹配任何字符但不匹配数字。 ^\D*
表示从头开始 ^
匹配零个或多个 *
非数字字符 \D
.
sub("^\D*","","Gilroy Plant Place 777 Morello Ave")
# [1] "777 Morello Ave"
需要命令帮助来替换字符串中从开头到第一个数字之前的文本。我有一个数据框,在单个字段中包含所有这些地名和地址,但只需要从字符串中提取地址。
使用此 gsub
命令替换字符串,
gsub("^.*?\d","","Gilroy Plant Place 777 Morello Ave")
[1] "77 Morello Ave"
要求输出:
777 Morello Ave
gsub(".*?(\d.*)","\1","Gilroy Plant Place 777 Morello Ave")
使用正向预测:
^.*?(?=\d)
正向先行的作用是先于字符串查看子模式是否匹配。如果是,则匹配子模式之前的内容。在上面的正则表达式中,^.*?
只有在它后面的字符串匹配 \d
时才会匹配,但是 \d
部分不会在匹配中。
我会使用 \D
并且这个东西匹配任何字符但不匹配数字。 ^\D*
表示从头开始 ^
匹配零个或多个 *
非数字字符 \D
.
sub("^\D*","","Gilroy Plant Place 777 Morello Ave")
# [1] "777 Morello Ave"