我会提取字符串中包含的所有数字.哪个更适合目的,正则表达式或isdigit()方法?
例:
line = "hello 12 hi 89"
Run Code Online (Sandbox Code Playgroud)
结果:
[12, 89]
Run Code Online (Sandbox Code Playgroud) 获取字符串中数值列表的最简洁方法是什么?
例如:
string = 'version_4.11.2-2-1.4'
array = [4, 11, 2, 2, 1, 4]
Run Code Online (Sandbox Code Playgroud)
您可能理解,我需要比较版本.
"最干净",我的意思是尽可能简单/简短/可读.
另外,如果可能的话,我更喜欢内置函数而不是regexp(import re).
这是我到目前为止所得到的,但我觉得它很笨拙:
array = [int(n) for n in ''.join(c if c.isdigit() else ' ' for c in string).split()]
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我无法在SO上找到答案:
谢谢
我想要的是获取一个可能包含非数字字符的字符串,我想只从该字符串中提取2个数字.所以,如果我12 ds d21a想要提取我的字符串['12', '21'].
我试过用:
import re
non_decimal = re.compile(r'[^\d.]+')
non_decimal.sub("",input())
Run Code Online (Sandbox Code Playgroud)
并喂了这个字符串12 123124kjsv dsaf31rn.结果12123124很好,但我想要非数字字符来分隔数字.
接下来我试着添加split- non_decimal.sub("",input().split()).没有帮助.
我该怎么做(假设有一种方法不包括扫描整个字符串,迭代它并"手动"提取数字)?
为了更清楚,这是我想要实现的,在C中.