gpt4 book ai didi

javascript 匹配返回单词边界

转载 作者:行者123 更新时间:2023-12-03 12:43:31 26 4
gpt4 key购买 nike

正则表达式不是我的强项。我希望你们中的一位可以帮助我。

我正在尝试使用 javacript.match() 来搜索所有散列(# 开头)单词。我得到一个返回的空白。

string = "#foo #bar"
result = string.match(/(^|\W)(#[a-z\d][\w-]*)/ig);
console.log(result)

结果:

 ["#foo", " #bar"] 

注意#bar 中的空格。
我应该对正则表达式进行哪些更改以排除返回 .match 中的边界?
感谢您的帮助!!

最佳答案

之前您不需要 (^|\W) ,因为 # 无论如何都被视为非单词字符。您将获得空间,因为 \W 也会匹配空格。

这个正则表达式会工作得更好:

var re = /(?:^|\s)(#[a-z\d][\w-]*)/g,
matches = [],
input = "#foo #bar abc#baz";
while (match = re.exec(input)) matches.push(match[1].trim());

console.log(matches);
//=> ["#foo", "#bar"]

编辑:为了避免循环:

var m = [];
var str = "#foo #bar abc#baz";
str.replace(/(^|\s)(#[a-z\d][\w-]*)/g, function($1) { m.push($1.trim()); return $1; } );

console.log(m);
//=> ["#foo", "#bar"]

关于javascript 匹配返回单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com