问题描述
我想从熊猫系列中提取所有字母(A-Za-z)以及任何以 9 开头的字符串,例如 9mobile、9link 等。
1000 pos ba ganiyu fatai og ogng 9moble
1001 99 ct justrite limited(ota) la lang
1002 9link qt pymt airtime recharge
1003 qt pymt airtime recharge 56
9 只应在字符串的开头出现零次或一次。
我想出了这个正则表达式模式 [^A-Za-z\(A9?)]
,但它似乎没有提取出我真正想要的东西。
我也试过这个:
text = t.apply(lambda x: re.sub('[^A-Za-z\A9.?]+',' ',str(x)))
导致错误
我的预期输出是:
1000 pos ba ganiyu fatai og ogng 9moble
1001 ct justrite limited(ota) la lang
1002 9link qt pymt airtime recharge
1003 qt pymt airtime recharge
解决方法
如果我理解正确,您想提取任何字符串和任何以 9 作为第一个字符的内容。在这种情况下,试试这个正则表达式:
9{0,1}[a-zA-Z]+
所以它应该看起来像这样:
text = t.apply(lambda x: re.sub('9{0,1}[a-zA-Z]+',' ',str(x)))
编辑:
要仅从列表中删除数字,请使用:
\d+([^\w]|$)
这是做什么的,它匹配任何后面没有字符或后面跟着字符串结尾的数字,所以它不会匹配像“9link”这样的字符串。