我想使用正则表达式从文本字符串中提取 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)
谢谢!
最佳答案
您可以在正则表达式中使用匹配组来指示您想要提取的部分。
我设置了这个JSFiddle来演示。
基本上,您将要提取的正则表达式部分括在括号中:/>([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);
}
关于javascript - 在 JavaScript 中使用正则表达式从字符串中提取 Twitter 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42065577/