如何获得以此短语开头的正则表达式?

时间:2016-04-27 21:47:25

标签: javascript regex

我想要一个正则表达式,它将短语放在以" st"开头的较大字符串中。它必须不区分大小写并搜索整个字符串并返回匹配数。

我有什么:

/st+/ig

我正在测试它:

st stuff pistuff stuff
stuff st st st st stuff notstuff
STUFF STUFF STUFF
sti
stiiiiii
stiiii
stufff
stiufff

几乎所有东西都正确匹配,除了它还能拿起手枪而不是原料。

1 个答案:

答案 0 :(得分:3)

已更新以捕获以st开头的字词,或仅包含两个字符st,不区分大小写:

  • 对于整个单词匹配:/\bst\w*/ig
  • 对于匹配项,无需匹配整个单词:/\bst/ig

\b用于标记单词边界。



var strArr = [
  'st stuff pistuff stuff',
  'stuff st st st st stuff notstuff',
  'STUFF STUFF STUFF',
  'sti',
  'stiiiiii',
  'stiiii',
  'stufff',
  'stiufff'
];

var re = /\bst\w*/ig;
var count = 0;

strArr.forEach(function(str) {
  count += str.match(re).length;
  document.body.insertAdjacentHTML('beforeend', str.match(re) + '<br>');
});

document.body.insertAdjacentHTML('beforeend', 'count: ' + count);
&#13;
&#13;
&#13;

此外,Regex101