You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js解析字符串:提取指定位置的数字数组

如何提取换行后、特定字符串前的数字组成数组?

待解析的字符串示例:

54766392632990,178.32.243.13,wfsdsfsdfs23432,
54766393632990,178.32.243.13, 

需求是提取每一行中,位于换行符后、",178.32.243.13"之前的数字,最终组成数组[54766392632990,54766393632990]。下面给你几个常用编程语言的实现方案:

JavaScript 实现

核心思路是先按换行符分割字符串,再遍历每一行提取目标数字:

const inputStr = `54766392632990,178.32.243.13,wfsdsfsdfs23432,
54766393632990,178.32.243.13, `;

// 按换行分割成数组,过滤掉空行
const lines = inputStr.split('\n').filter(line => line.trim() !== '');

// 遍历每行,提取目标数字
const result = lines.map(line => {
  // 找到目标分隔符的位置
  const separatorIndex = line.indexOf(',178.32.243.13');
  if (separatorIndex !== -1) {
    // 截取分隔符前的部分并转成数字
    return Number(line.slice(0, separatorIndex));
  }
  return null; // 处理不符合格式的行,这里可以根据需求调整
}).filter(num => num !== null); // 过滤掉无效结果

console.log(result); // 输出: [54766392632990, 54766393632990]

Python 实现

用类似的思路,分割行后提取目标内容:

input_str = """54766392632990,178.32.243.13,wfsdsfsdfs23432,
54766393632990,178.32.243.13, """

# 按换行分割,过滤空行
lines = [line.strip() for line in input_str.split('\n') if line.strip()]

result = []
for line in lines:
    separator = ',178.32.243.13'
    if separator in line:
        # 分割字符串并取第一部分转成整数
        num_str = line.split(separator)[0]
        result.append(int(num_str))

print(result)  # 输出: [54766392632990, 54766393632990]

正则表达式通用方案(多语言适用)

如果想更灵活,也可以用正则匹配每一行的目标数字,比如在Python中:

import re

input_str = """54766392632990,178.32.243.13,wfsdsfsdfs23432,
54766393632990,178.32.243.13, """

# 匹配每行开头到目标分隔符前的数字
pattern = re.compile(r'^(\d+),178\.32\.243\.13')
matches = pattern.findall(input_str, re.MULTILINE)
result = [int(num) for num in matches]

print(result)  # 输出: [54766392632990, 54766393632990]

这个正则的意思是:匹配每行开头的一串数字,后面紧跟",178.32.243.13",其中re.MULTILINE让^匹配每行的开头。

内容的提问来源于stack exchange,提问作者Andrey Radkevich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:54:47