使用正则表达式获取标签中的第一个单词
Posted
技术标签:
【中文标题】使用正则表达式获取标签中的第一个单词【英文标题】:Getting the First Word in a Tag With Regex 【发布时间】:2013-04-23 19:39:43 【问题描述】:我正在尝试制作一个正则表达式来获取< ... >
标记中的第一个单词。我已经有一个可以获取标签中的所有单词。我正在使用它:
/<(.*?)>/
我的问题是,我可以吗?
【问题讨论】:
这是 html 吗?如果是这样,只需将其解析为文档片段并使用elem.tagName
。
这是一个使用正则表达式的解析器。
@user2228462,接受的解决方案是错误的。看看我的回答就知道为什么了。
@user2228462,很高兴我能帮上忙 ;)
【参考方案1】:
这是一个可行的解决方案:/<([^>\s]+)[^>]*>/
【讨论】:
【参考方案2】:这样就可以了……
/<(.*?)\s/
【讨论】:
【参考方案3】:在简单的情况下,/<(\S+)/
可能是您要查找的内容,或者您可能更正式,实际上只列出标签名称中允许的字符。
【讨论】:
【参考方案4】:var tag = "< hello world>";
var regex = /<\s*(\S*)\b/;
if (match_arr = tag.match(regex))
alert("yes:" + match_arr[1]);
有什么方法可以获取标签中第一个单词之后的每个单词?
var tag = "< hello world goodbye >";
var regex = /<(.*?)>/;
if (match_arr = tag.match(regex))
var str = match_arr[1].trim();
var words = str.split(" ");
console.log("-->" + words.slice(1).join(" ") + "<--");
--output:--
-->world goodbye<--
【讨论】:
其实,如果你的字符串已经只有一个标签,你可以使用正则表达式:/\b(\S*)\b/ with match()。 您必须定义“单词”的含义。 hello="world" 是一个词吗?还是那两个字?引号是单词的一部分吗?以上是关于使用正则表达式获取标签中的第一个单词的主要内容,如果未能解决你的问题,请参考以下文章