[英]Get numbers and characters after 3 expression with regex
我正在使用正则表达式来获取某些单词在大文本中的下一个值。
例:
Money: 0,00 0,00 0,00 50,00
目前,我使用以下正则表达式取值0.00:
var obj =
var text = 'HUGE TEXT HERE'
var reg = new RegExp('Money' + '.*?(\\d\\S*)');
var match = reg.exec(text);
if (match === null) {
obj[key] = '';
continue;
}
obj[key] = match[1];
输出:
object.money = '0,00'
此值是动态的,有时“钱”一词会更改。 所以我需要能够传递单词名称。 我想放大我的正则表达式以忽略接下来的三个表达式,然后获取值。 有可能的?
谢谢。
您可以查找(并忽略)三个重复的数字,然后捕获最后一个:
(?:\d\S*\s+){3}(\d\S*)
哪里:
(?:...)
表示“不要将此组包括在返回的捕获组列表中”,并且
{3}
表示“匹配其中三个”。
我们在末尾添加了\\s+
以捕获数字之间的空格。
类似于(简化)的内容:
var obj = {}; var key = 'Money'; var text = "Something something:\\n" + "Money: 1,00 2,00 3,00 3,00\\n" + "Something else"; var reg = new RegExp(key + '\\\\b.*?(?:\\\\d\\\\S*\\\\s+){3}(\\\\d\\\\S*)'); var match = reg.exec(text); if (match === null) obj[key] = ''; else obj[key] = match[1]; console.log(obj[key]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.