繁体   English   中英

使用正则表达式3个表达式后获取数字和字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM