在Python中,从字符串内部删除列表中的模式

在Python中,从字符串内部删除列表中的模式,python,Python,嗯,我有一个字符串: string ="01. 01 22 3 456 0001 02 . 002 3. 0003 4 . 0004 05- 0005 06 - 0006 7- 0007 8 - 0008 09. 0009 10. 0010" 正如你所见,这是一个列表。重要的只是点或hifen后面的数字。每个数字或数字组都必须成为列表中的一项,如下所示: ["01", "22", "3", "456", "0001", "002", "0003", "0004"....etc] 我在正则表达

嗯,我有一个字符串:

string ="01. 01 22 3 456 0001 02 . 002 3. 0003 4 . 0004 05- 0005 06 - 0006 7- 0007 8 - 0008 09. 0009 10. 0010"
正如你所见,这是一个列表。重要的只是点或hifen后面的数字。每个数字或数字组都必须成为列表中的一项,如下所示:

["01", "22", "3", "456", "0001", "002", "0003", "0004"....etc]
我在正则表达式方面做了一些工作,得到了以下列表:

['01.', '02 .', '3.', '4 .', '09.', '10.', '05-', '06 -', '7-', '8 -']
现在我需要把它从那里移除。 第一个是str类型,第二个是list类型,我不知道用哪种方法来解决它


有什么想法吗?

你可以使用
re.findall

import re
string ="01. 01 22 3 456 0001 02 . 002 3. 0003 4 . 0004 05- 0005 06 - 0006 7- 0007 8 - 0008 09. 0009 10. 0010"
results = re.findall('(?<=\s)\d+(?=\s[\d$])|(?<=\s)\d+(?=$)', string)

您可以使用
re.findall

import re
string ="01. 01 22 3 456 0001 02 . 002 3. 0003 4 . 0004 05- 0005 06 - 0006 7- 0007 8 - 0008 09. 0009 10. 0010"
results = re.findall('(?<=\s)\d+(?=\s[\d$])|(?<=\s)\d+(?=$)', string)

很好,但我修改了问题。它可能是一个或多个点后数字或hifen。@samu101108然后就是
\d+
@Ajax1234就是这样!完美的谢谢大家!
..[\d$]
是否假定
$
与字符串结尾匹配?-->
..[\d]|$
@wwii是的,虽然我意识到它需要在正则表达式中作为一个单独的条件。很好,但我修改了这个问题。它可能是一个或多个点后数字或hifen。@samu101108然后就是
\d+
@Ajax1234就是这样!完美的谢谢大家!
..[\d$]
是否假定
$
与字符串结尾匹配?-->
..[\d]$
@wwii是的,尽管我意识到它需要在正则表达式中是一个单独的条件。点/连字符后面总是有空格吗?是的@wwii,点/连字符后面总是有空格吗?是的@wwii,点/连字符后面总是有空格吗