在JavaScript中使用正则表达式从字符串中提取Twitter处理程序
我想使用正则表达式从文本字符串中提取Twitter处理程序名称。我相信我就快到了,除了输出中包含的“在JavaScript中使用正则表达式从字符串中提取Twitter处理程序,javascript,regex,Javascript,Regex,我想使用正则表达式从文本字符串中提取Twitter处理程序名称。我相信我就快到了,除了输出中包含的“”之外。如何将正则表达式修改得更好,并从输出中删除“” 以下是文本字符串值的示例: "<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Abs
”之外。如何将正则表达式修改得更好,并从输出中删除“
”
以下是文本字符串值的示例:
"<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Absa</a>, <a href=\"https://twitter.com/DiepslootMTB\" target=\"_blank\">DiepslootMTB</a>"
PlaymakersZA, Absa, DiepslootMTB
var array = str.match(/>[a-z-_]+/ig)
下面是我的正则表达式示例:
"<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Absa</a>, <a href=\"https://twitter.com/DiepslootMTB\" target=\"_blank\">DiepslootMTB</a>"
PlaymakersZA, Absa, DiepslootMTB
var array = str.match(/>[a-z-_]+/ig)
谢谢大家! 您可以在正则表达式中使用匹配组来指示要提取的部分 我设置这个来演示 基本上,您将要在括号中提取的正则表达式部分括起来:
/>([a-z-+)/ig
,将其另存为一个对象,只要还有值,就执行.exec()。使用结果数组中的索引1,可以找到第一个匹配组的结果。索引0是整个正则表达式,下一个索引将是后续匹配组(如果可用)
var str = "<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Absa</a>, <a href=\"https://twitter.com/DiepslootMTB\" target=\"_blank\">DiepslootMTB</a>";
var regex = />([a-z-_]+)/ig
var array = regex.exec(str);
while (array != null) {
alert(array[1]);
array = regex.exec(str);
}
var str=“,”;
var regex=/>([a-z-]+)/ig
var数组=regex.exec(str);
while(数组!=null){
警报(数组[1]);
array=regex.exec(str);
}
您可以在正则表达式中使用匹配组来指示要提取的部分
我设置这个来演示
基本上,您将要在括号中提取的正则表达式部分括起来:/>([a-z-+)/ig
,将其另存为一个对象,只要还有值,就执行.exec()。使用结果数组中的索引1,可以找到第一个匹配组的结果。索引0是整个正则表达式,下一个索引将是后续匹配组(如果可用)
var str = "<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Absa</a>, <a href=\"https://twitter.com/DiepslootMTB\" target=\"_blank\">DiepslootMTB</a>";
var regex = />([a-z-_]+)/ig
var array = regex.exec(str);
while (array != null) {
alert(array[1]);
array = regex.exec(str);
}
var str=“,”;
var regex=/>([a-z-]+)/ig
var数组=regex.exec(str);
while(数组!=null){
警报(数组[1]);
array=regex.exec(str);
}
您可以去掉所有HTML
var str = "<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Absa</a>, <a href=\"https://twitter.com/DiepslootMTB\" target=\"_blank\">DiepslootMTB</a>";
$handlers = str.replace(/<[^>]*>|\s/g,'').split(",");
var str=“,”;
$handlers=str.replace(/]*>|\s/g',).split(“,”);
您可以去掉所有HTML
var str = "<a href=\"https://twitter.com/PlaymakersZA\" target=\"_blank\">PlaymakersZA</a>, <a href=\"https://twitter.com/Absa\" target=\"_blank\">Absa</a>, <a href=\"https://twitter.com/DiepslootMTB\" target=\"_blank\">DiepslootMTB</a>";
$handlers = str.replace(/<[^>]*>|\s/g,'').split(",");
var str=“,”;
$handlers=str.replace(/]*>|\s/g',).split(“,”);
我想说的是,使用document.querySelectorAll('a[href*=“twitter.com”])
并迭代每个文档,从DOM获取textContent
。如果您想使用正则表达式,请使用捕获组并提取第一个捕获的组值。或者使用str.match(/>[a-z-_]+/ig).map(函数(x){return x.substr(1);})
在最坏的情况下,您可以使用第二个.match()
。。。如果你不匹配(?!>)
@Wasted,你能告诉我关于实现第二个匹配的更多细节吗?我对regex很陌生。非常感谢。我的意思是你可以再次匹配数组的元素,但现在你得到了你的解决方案:)我想说,使用document.querySelectorAll('a[href*=“twitter.com]”)
,然后迭代每个元素,从DOM中获取textContent
。如果您想使用正则表达式,请使用捕获组并提取第一个捕获的组值。或者使用str.match(/>[a-z-_]+/ig).map(函数(x){return x.substr(1);})
在最坏的情况下,您可以使用第二个.match()
。。。如果你不匹配(?!>)
@Wasted,你能告诉我关于实现第二个匹配的更多细节吗?我对regex很陌生。非常感谢。我的意思是可以再次匹配数组的元素,但现在您得到了解决方案:)