Regex Reg表达式-在两个字符串之间拆分两个字符串<;h3>;标签
我一直在寻找一个reg表达式来将html元素拆分为2个部分。第一个是价格,第二个是下载次数。这是我的HTML,这是我尝试使用的reg表达式。我正在使用scapper程序,所以我不能使用java脚本或jQuery HTML:Regex Reg表达式-在两个字符串之间拆分两个字符串<;h3>;标签,regex,Regex,我一直在寻找一个reg表达式来将html元素拆分为2个部分。第一个是价格,第二个是下载次数。这是我的HTML,这是我尝试使用的reg表达式。我正在使用scapper程序,所以我不能使用java脚本或jQuery HTML: <h2>$850 / 3Downlaods - Software Name</h2> 重新表达后使用的标记: /$\/\s*/ /\/\ 这应该只返回850。没有美元符号。我被困在如何开始和结束下载的数量。我需要另一套前后正则表达式来获取下载数量
<h2>$850 / 3Downlaods - Software Name</h2>
重新表达后使用的标记:
/$\/\s*/
/\/\
这应该只返回850。没有美元符号。我被困在如何开始和结束下载的数量。我需要另一套前后正则表达式来获取下载数量。也不包括“下载”一词
如果
中没有其他嵌套的标记(考虑起来更复杂),我使用的程序是OutWit Hub Scapper,两个()
捕获组由/
分隔,应该这样做:
/<h2>\s*\$(\d+)\s*\/\s*(\d+)\s*Downloads.+?<\/h2>/
关于使用正则表达式解析HTML的常见警告适用于此处。只有当您的HTML输入是可预测的,并且在
中没有嵌套标记时,这才可以成功地工作。请尝试以下方法:(?:.*\$)(\d+(?:\。\d+).*(\d+)(\d+)(::\s*下载。*)
下面是发生的事情:
(?:.*\$)
-捕获并丢弃标记的开头,一直到它在美元符号后找到的第一个数字
(\d+(?:\。\d+)
-捕获美元金额(包括美分)
*
-两个数字之间的任何废话
(\d+)
-下载次数
(?:\s*下载。*)
-标记的其余部分
我希望这有帮助
/<h2>\s*\$([0-9,.]+)\s*\/\s*(\d+)\s*Downloads.+?<\/h2>/