猪猪虾 发表于 2023-7-5 20:57:11

下面这种格式的txt数据,怎么把里面的数字提取出来啊,我着急用,help

matlab可真费劲啊

Ek__3->SetBinContent(1,119);
Ek__3->SetBinContent(2,33);
Ek__3->SetBinContent(3,16);
Ek__3->SetBinContent(4,11);
Ek__3->SetBinContent(5,10);
Ek__3->SetBinContent(6,4);
Ek__3->SetBinContent(7,4476);
Ek__3->SetBinContent(8,602);

陶远航 发表于 2023-7-5 20:57:25

你可以使用正则表达式来提取文本中的数字。以下是一个示例代码,使用Python中的re模块来提取数字:

python
import re

data = "matlab可真费劲啊Ek__3->SetBinContent(1,119);Ek__3->SetBinContent(2,33);Ek__3->SetBinContent(3,16);Ek__3->SetBinContent(4,11);Ek__3->SetBinContent(5,10);Ek__3->SetBinContent(6,4);Ek__3->SetBinContent(7,4476);Ek__3->SetBinContent(8,602);复制代码"

numbers = re.findall(r"\d+", data)

print(numbers)


运行以上代码,会输出提取到的数字列表:


['1', '119', '2', '33', '3', '16', '4', '11', '5', '10', '6', '4', '7', '4476', '8', '602']


在代码中,使用re.findall(r"\d+", data)的正则表达式模式\d+表示匹配一个或多个数字。re.findall()函数会返回所有匹配的数字,并组成一个列表。

希望这能帮到你!如有任何其他问题,请随时提问。

编程追风梦 发表于 2023-7-5 20:58:12

import re

def extract_numbers(input_string):
    pattern = r'\((\d+),(\d+)\)'
    matches = re.findall(pattern, input_string)
    numbers = [(int(match), int(match)) for match in matches]
    return numbers

input_string = '''
Ek__3->SetBinContent(1,119);
Ek__3->SetBinContent(2,33);
Ek__3->SetBinContent(3,16);
Ek__3->SetBinContent(4,11);
Ek__3->SetBinContent(5,10);
Ek__3->SetBinContent(6,4);
Ek__3->SetBinContent(7,4476);
Ek__3->SetBinContent(8,602);
'''

numbers = extract_numbers(input_string)

for number in numbers:
    print(number)

用这个吧

猪猪虾 发表于 2023-7-5 21:01:18

陶远航 发表于 2023-7-5 20:57
你可以使用正则表达式来提取文本中的数字。以下是一个示例代码,使用Python中的re模块来提取数字:



感谢感谢
页: [1]
查看完整版本: 下面这种格式的txt数据,怎么把里面的数字提取出来啊,我着急用,help