如何提取含成对括号的字符串中大括号内的数字?
提取大括号内的数字解决方案
核心思路是利用正则表达式定位所有{}包裹的数字序列,无需关心外层成对括号的数量,直接捕获目标数字即可。
正则表达式模式
使用{(\d+)}作为匹配模式:
{和}:匹配大括号的字面量(\d+):捕获组,匹配一个或多个数字(这就是我们需要提取的内容)
代码示例
Python 实现
import re input_str = r"([\S\s]{8}))([\S\s]{20}))([\S\s]{10}))" # 匹配所有大括号内的数字 nums = re.findall(r"{(\d+)}", input_str) # 逐行输出结果 for num in nums: print(num)
输出:
8 20 10
JavaScript 实现
const inputStr = "([\\S\\s]{8}))([\\S\\s]{20}))([\\S\\s]{10}))"; const regex = /{(\d+)}/g; let match; // 循环匹配所有结果 while ((match = regex.exec(inputStr)) !== null) { console.log(match[1]); }
输出:
8 20 10
说明
这个方案不受外层成对括号数量的影响,只要目标数字始终被{}包裹,就能稳定提取出所有符合要求的数字。
内容的提问来源于stack exchange,提问作者Sam Harris
相关产品推荐
相关产品推荐

