当我尝试这个时:
"12.3 xxx4.56 23yyy".match(/\d+/ig)
我得到了这个输出:
["12", "3", "4", "56", "23"]
我想这样:
["12.3", "4.56", "23"]
正确的正则表达式是什么?
答案 0 :(得分:1)
您可以在正则表达式中使用可选组来处理这种情况。像这样:
"12.3 xxx4.56 23yyy".match(/\d+(\.\d+)?/ig)
=> Array [ "12.3", "4.56", "23" ]
(...)?
语法意味着里面的所有内容都是可选的 - 如果存在,它将匹配,但如果不存在则不会阻止匹配。仅?
也可以应用于单个术语。
答案 1 :(得分:1)
这个怎么样:
"12.3 xxx4.56 23yyy".match(/([\d.]+)/g)
i
似乎没必要,因为您只搜索号码 i
不区分大小写是不必要的。