1

我相信这真的很容易,但我该如何匹配

  1. 匹配行首或空格
  2. 匹配 az
  3. 匹配行尾或空格

我只想退回商品编号。2 所以对于以下字符串

"one 1.ignore two 2ignore ignore3 three"

表达式将返回

["one","two","three"]

谢谢

4

2 回答 2

2

您需要查找与这些项目匹配的正则表达式,这在 javascript 中不受支持。要么您进行手动迭代并提取匹配组(如@Some1.Kill.The.DJ 所示),要么您将拆分字符串而不是匹配:

str.split(/\s+(?:\S*?(?![a-z])\S+\s+)*/);

此表达式确实匹配所有空格与包含至少一个不是字符的单词的组合[a-z]。但是,这个正则表达式复杂且不易维护;它有时也会产生空字符串。更好,做类似的事情

str.split(/\s+/).filter(RegExp.prototype.test.bind(/^[a-z]+$/));
于 2012-11-30T12:16:57.137 回答
0

使用此代码:

var str = 'one 1.ignore two 2ignore ignore3 three';
str = str.replace(/\s(?=[a-z])/ig, function(text, p1) {
    return p1 ? p1 : text;
});

var arr = str.match(/([a-z]+)(?=\s|$)/ig);
于 2012-11-30T11:26:04.677 回答