如何使用正则表达式提取字符串中Price Our与后续|之间的2个数字
正则提取数字解决方案
你可以直接修改正则表达式,通过捕获组一步提取两个目标数字,无需分两次匹配:
最终正则表达式
Price Our:\s*(\d+\.\d+)\s*=>\s*(\d+\.\d+)\s*(?=\|)
规则说明
- 两个
(\d+\.\d+)为捕获组,分别匹配=>前后的两个带小数的数字,匹配结果会按顺序存入捕获组1和捕获组2 \s*用于兼容可能存在的多余空格,提升容错性- 末尾的
(?=\|)正向预查保证匹配范围截止到下一个|符号,不会匹配到后面的其他内容
常用语言调用示例
Python
import re target_str = "Delivery: Price => 30.00 - 45.00 | Price Our: 1900.00 => 1800.00 | Delivery: Contact => 3 - 4 Days | " res = re.search(r'Price Our:\s*(\d+\.\d+)\s*=>\s*(\d+\.\d+)\s*(?=\|)', target_str) if res: num1, num2 = res.groups() # 输出结果:1900.00 1800.00
JavaScript
const targetStr = "Delivery: Price => 30.00 - 45.00 | Price Our: 1900.00 => 1800.00 | Delivery: Contact => 3 - 4 Days | "; const reg = /Price Our:\s*(\d+\.\d+)\s*=>\s*(\d+\.\d+)\s*(?=\|)/; const res = targetStr.match(reg); if (res) { const [num1, num2] = res.slice(1); // 输出结果:1900.00 1800.00 }
如果你坚持要先截取Price Our:到|的区间再二次提取,直接对截取结果全局匹配\d+\.\d+即可得到两个数字。
内容的提问来源于stack exchange,提问作者snack overflow
相关产品推荐
相关产品推荐

