搜索和替换字符串

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"