带有JavaScript的正则表达式比它应该匹配的更多
非常简单的HTML(省略号表示有更多代码):带有JavaScript的正则表达式比它应该匹配的更多,javascript,regex,html-parsing,Javascript,Regex,Html Parsing,非常简单的HTML(省略号表示有更多代码): …配置文件”> 一些文本 ... 使用用于JavaScript的在线正则表达式测试仪(http://regexpal.com/),我可以使用以下表达式提取“Some text”(注意,它包含换行符): (?=Profile">)[\s\S]*(?=</a) (?=Profile“>)[\s\s]*(?=[\s\s]*(?=当您确定提供的字符串不包含可能的陷阱(例如)时,将[\s]*替换为[^可能最好将量词取消冻结。尝试以下正则表达式:
…配置文件”>
一些文本
...
使用用于JavaScript的在线正则表达式测试仪(http://regexpal.com/),我可以使用以下表达式提取“Some text”(注意,它包含换行符):
(?=Profile">)[\s\S]*(?=</a)
(?=Profile“>)[\s\s]*(?=[\s\s]*(?=当您确定提供的字符串不包含可能的陷阱(例如
)时,将[\s]*
替换为[^可能最好将量词取消冻结。尝试以下正则表达式:
/Profile">([\s\S]*?)(?=<)/
/Profile“>([\s\s]*?)(?=有人有什么建议吗?-是的。不使用正则表达式解析HTML将是一个很好的开始。谢谢。我将来肯定会学习DOM,但我现在需要一个临时解决方案。当有DOM时使用正则表达式有什么意义(免费!)您可以用来提取节点的值吗?@Tomalak该问题没有包含足够的信息来发布有关DOM遍历的答案。但是,它确实包含了查找文本的明确条件。@Rob W非常感谢!是的,我将使用此作为临时解决方案,但将花时间学习DOM,以便以后更新我的主代码。是的,是的。这需要一些澄清。但这不难做到。看起来应该提取某个链接的文本。
var ShowContent = document.getElementById(id);
ShowContent = ShowContent.innerHTML;
var patt3=/Profile">[\s\S]*(?=<)/;
var GetName=patt3.exec(ShowContent);
alert(GetName);
var patt3 = /Profile">([^<]*)/;
var getName = patt3.exec(ShowContent);
getName = getName ? getName[1] : ''; // If no match has been found -> empty string
alert(getName);
/Profile">([\s\S]*?)(?=<)/