>>> import re
>>> s = "Hans went to house number 10 92384 29349"
>>> re.split(r'\s+(?=\d+\b)', s)
['Hans went to house number', '10', '92384', '29349']
也就是说,您的问题令人困惑,如果要将|字符添加到输出,只需再次连接输出:
^{pr2}$
如果您的目标是实现一个能做到这一点的函数,您可以编写以下内容:
def split_numbers(string, join=None):
from re import split
split = re.split(r'\s+(?=\d+\b)', string)
return join.join(split) if join else split
请注意,我在正则表达式中添加了单词边界\b,以避免匹配句子Hans went to house number 10 92384 29349 and drank 2cups of coffee中以2cups开头的单词
a = "Hans went to house number 10 92384 29349"
res = ""
for word in a.split():
try:
number = int(word)
res += " | %d" % number
except ValueError:
res += " %s" % word
使用正则表达式非常简单:
也就是说,您的问题令人困惑,如果要将
^{pr2}$|
字符添加到输出,只需再次连接输出:如果您的目标是实现一个能做到这一点的函数,您可以编写以下内容:
请注意,我在正则表达式中添加了单词边界
\b
,以避免匹配句子Hans went to house number 10 92384 29349 and drank 2cups of coffee
中以2cups
开头的单词如果只想将
|
添加到字符串中,可以尝试以下操作:输出:
^{pr2}$你可以把你的句子分成单词,然后试着把这个单词转换成整数。如果演员失败了,那就用康卡
编辑:我试图给出“最简单”的解决方案。我是说,它比较长,但我想更容易理解。不过,如果你了解其他解决方案(1行),那就去做吧。在
相关问题 更多 >
编程相关推荐