javascript - 更短的正则表达式可按 2 个条件分割,外部有空格

标签 javascript regex

例如,我有一个字符串包含:'2014-12 to 1251255, 123123',我想获取2014-12, 1251255123123。这个是正确的:

> '2014-12 to 1251255, 123123'.split( /\s*,\s*|\s*to\s*/ );
[ '2014-12', '1251255', '123123' ]

但是有比上面更短的正则表达式吗?

我当然尝试过:

> '2014-12 to 1251255, 123123'.split( /\s*(,|to)\s*/ );
[ '2014-12', 'to', '1251255', ',', '123123' ]

> '2014-12 to 1251255, 123123'.split( /\s*,|to\s*/ );
[ '2014-12 ', '1251255', ' 123123' ]

> '2014-12 to 1251255, 123123'.split( /\s*[,|to]\s*/ );
[ '2014-12', '', '1251255', '123123' ]

> '2014-12 to 1251255, 123123'.split( /\s*[,|(to)]\s*/ );
[ '2014-12', '', '1251255', '123123' ]

最佳答案

只需使用匹配功能匹配一个或多个数字或连字符。

> '2014-12 to 1251255, 123123'.match(/[\d-]+/g)
[ '2014-12', '1251255', '123123' ]

或者

> '2014-12 to 1251255, 123123'.match(/\d+(?:-\d+)?/g)
[ '2014-12', '1251255', '123123' ]

关于javascript - 更短的正则表达式可按 2 个条件分割,外部有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29294120/

相关文章:

javascript - Firefox 在比较操作中未检测到 rgb 颜色

javascript - Node 推特 npm 包

regex - 计算文本文件中的单个单词

正则表达式只允许 1 到 12 之间的数字

javascript - 在 Bootstrap 中更新按钮图标

javascript - Chrome 中的 CSS#/HTML5 嵌套表格和子填充

javascript - 为什么这段 JavaScript 代码没有执行?

java - 使用正则表达式分割字符串

javascript - JavaScript中有多少种文字?

Python:用reg的输出替换所有列