Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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的正则表达式比它应该匹配的更多_Javascript_Regex_Html Parsing - Fatal编程技术网

带有JavaScript的正则表达式比它应该匹配的更多

带有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]*替换为[^可能最好将量词取消冻结。尝试以下正则表达式:

非常简单的HTML(省略号表示有更多代码):

…配置文件”>
一些文本
...
使用用于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]*?)(?=<)/