【问题标题】:String Matching Javascript字符串匹配 Javascript
【发布时间】:2016-09-24 12:32:43
【问题描述】:

我想获取@符号之后的字符直到一个空格字符。

例如。如果我的字符串类似于hello @world. some gibberish.@stackoverflow。然后我想得到字符'world'和'stackoverflow'。

这是我一直在尝试的。

var comment = 'hello @world. some gibberish.@stackoverflow';
 var indices = [];
  for (var i = 0; i < comment.length; i++) {
        if (comment[i] === "@") {
            indices.push(i);
            for (var j = 0; j <= i; j++){
               startIndex.push(comment[j]); 
            }
        }
    }

我可以得到 @ 和空格的出现,然后修剪那部分以获得我的内容,但我想要一个更好的解决方案/建议,没有 REGEX。提前致谢。

【问题讨论】:

标签: javascript arrays regex node.js string


【解决方案1】:

你可以使用这个正则表达式:

/@(\S+)/g

并在循环中使用exec 方法抓取捕获的组。

此正则表达式匹配@,然后\S+ 匹配分组到捕获组中的1 个或多个非空格字符。

代码:

var re = /@(\S+)/g; 
var str = 'hello @world. some gibberish.@stackoverflow';
var m;
var matches=[];

while ((m = re.exec(str)) !== null) {
  matches.push(m[1]);
}

document.writeln("<pre>" + matches + "</pre>");

PS:注意你需要使用

/@([^.\s]+)/g

如果您不想在word 之后捕获 DOT。

【讨论】:

  • 非常感谢!工作得很好。如果您可以推荐大量学习正则表达式的示例,还有什么好的参考吗?提前致谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多