首页 > 解决方案 > 提取所有以数字开头的单词

问题描述

我也有类似以下格式的字符串,

"24" // only numbers
"23_hell,23,67,990_test" // number followed by _ followed by string (it repeats with comma)

它不应匹配不以数字开头的单词,例如text, abc123

我使用了下面的正则表达式,但它没有按预期工作:

var val = "23_hell text 23 abc123 45_dell"
val.match(/\d+/g);  

这将像这样返回:

["23","23","123","45"]

但我需要的是

["23_hell","23","45_dell"]

标签: javascriptregex

解决方案


要提取所有以数字开头的单词,您可以使用

val.match(/\b\d\w*/g)

请参阅正则表达式演示正则表达式图

在此处输入图像描述

细节

  • \b- 单词边界
  • \d- 一个数字
  • \w*- 一个或多个字母、数字或下划线。

JavaScript 演示:

var val = "23_hell text 23 abc123 45_dell";
console.log( val.match(/\b\d\w*/g) );
// => ["23_hell", "23", "45_dell"]


推荐阅读