我有一个字符串:
"23423 NewYork"
我只想要NewYork
。我可以将它切成碎片,但顺序可以不同,如"newyork 23244"
等。
从字符串中提取字符串的最佳方法是什么?
答案 0 :(得分:3)
>>> s = "23423 NewYork"
>>> [sub for sub in s.split() if all(c.isalpha() for c in sub)]
['NewYork']
>>> s = "NewYork 23423"
>>> [sub for sub in s.split() if all(c.isalpha() for c in sub)]
['NewYork']
答案 1 :(得分:2)
import re
s = "23423 NewYork"
m = re.findall('NewYork', s)
罗?
import re
s = "23423 NewYork"
m = re.findall(r'[^\W\d]+', s)
更一般的案例
答案 2 :(得分:1)
from re import sub
s= "23423 NewYork"
sub('\d',"",s).strip()
这应该做你需要的。
\ d 删除字符串中的所有数字,strip()应删除任何多余的空格。
答案 3 :(得分:1)
您也可以使用itertools
尝试以下内容:
from itertools import takewhile, dropwhile
a = "23423 NewYork"
b = "NewYork 23423"
def finder(s):
if s[0].isdigit():
return "".join(dropwhile(lambda x: x.isdigit() or x.isspace(), s))
else:
return "".join(takewhile(lambda x: not x.isdigit() or x.isspace(), s))
if __name__ == '__main__':
print finder(a)
print finder(b)