正则表达式:如果字符串以数字结尾-删除它,或者如果字符串以单个字母结尾-删除它,或者留下它



我有一个数据集的示例:

The Residences 6Villanova Tower B城市公园

可以使用

df['Project']=df['Project'].str.replace(r's+(?:d+|[A-Za-z])$', '', regex=True)

参见regex演示。

细节:

  • s+-一个或多个空白
  • (?:d+|[A-Za-z])-一个非捕获组匹配
    • d+-一个或多个数字
    • |-或
    • [A-Za-z]-一个ASCII字母(使用[^Wd_]匹配任何Unicode字母)
  • $-字符串结束

如果你的字符串在最后一个数字/字母之前没有空格,你可以使用

df['Project'].str.replace(r'b(?:d+|[A-Za-z])$', '', regex=True).str.rstrip()

b匹配一个词边界,确保在最后的数字/字母之前没有字母、数字或_,.str.rstrip()将去掉后面的空白。

相关内容

最新更新