Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中使用正则表达式从字符串中提取Twitter处理程序_Javascript_Regex - Fatal编程技术网

在JavaScript中使用正则表达式从字符串中提取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

我想使用正则表达式从文本字符串中提取Twitter处理程序名称。我相信我就快到了,除了输出中包含的“
”之外。如何将正则表达式修改得更好,并从输出中删除“

以下是文本字符串值的示例:

"<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很陌生。非常感谢。我的意思是可以再次匹配数组的元素,但现在您得到了解决方案:)