Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中从字符串中删除不需要的字符?_Python_String_Text - Fatal编程技术网

如何在python中从字符串中删除不需要的字符?

如何在python中从字符串中删除不需要的字符?,python,string,text,Python,String,Text,我有以下字符串: text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj' 我想返回: 2007 2008 在Python中有什么方法可以做到这一点吗? 您可能可以构建一个更好的字符表来跳过并使其更漂亮,但这是一般的想法。 >>> import re >>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj' >>> re.s

我有以下字符串:

text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
我想返回:

2007 2008
在Python中有什么方法可以做到这一点吗?

您可能可以构建一个更好的字符表来跳过并使其更漂亮,但这是一般的想法。

>>> import re
>>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
>>> re.sub("[^0-9]"," ",text)
'          2007                   2008         '
您可能可以构建一个更好的字符表来跳过并使其更漂亮,但这只是一般的想法

>>> import re
>>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
>>> re.sub("[^0-9]"," ",text)
'          2007                   2008         '
我将留给您格式化输出


我将留给您格式化输出。

这是正则表达式的经典案例。使用re python库,您可以获得:

re.findall('\d{4}', "yourStringHere")

这将返回字符串中所有四位数项目的列表。只需根据需要调整正则表达式。

这是正则表达式的经典案例。使用re python库,您可以获得:

re.findall('\d{4}', "yourStringHere")
import re
num = re.compile('[\d]*')
numbers = [number for number in num.findall(text) if number]
['2007', '2008']

这将返回字符串中所有四位数项目的列表。只需根据需要调整您的正则表达式。

检查以下答案:如果它是我想要保留的特定文本,该怎么办。它可能是一个数字,但可能不是。例如,如果我想保留2007d 2008a或其他特定的文本字符串,请检查以下答案:如果它是我想保留的特定文本,该怎么办。它可能是一个数字,但可能不是。例如,如果我想保留2007d2008a或其他特定的文本字符串,该怎么办?
import re
num = re.compile('[\d]*')
numbers = [number for number in num.findall(text) if number]
['2007', '2008']