繁体   English   中英

在正则表达式&lt;(? <balise> 。+)&gt;(?(balise)。* itemprop =。*)

[英]Find all itemprop in html with regex <(?<balise>.+)>(?(balise).*itemprop=.*)

您好,我有一些html,我尝试使用正则表达式来查找所有获得itemprop属性的HTML标记。

我想使用正则表达式,因为我不确定HTML的完整性。

我已经尝试过此正则表达式。

<(?<balise>.+)>(?(balise).*itemprop=.*)

我想在我的组中匹配一个模式,但是它不起作用。

有人可以帮我

文本解析的例子

<meta itemprop="currency" content="CDN" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">
<head><span itemprop="name">My name</span>

我只需要提取HTML标记谁可以获得itemprop

正如评论中指出的那样,使用正则表达式解析html远非理想,您应考虑使用适当的框架。

但是,如果坚持使用正则表达式,则可以尝试以下方法:

(?<=<)\s*([^\s>]+?)(?=\s[^>]*(?<=\s)itemprop="[^<]*?/?>)

查找由zero or more whitespace characters followed by one or more non whitespace and non > characters字符串,该字符串必须以<开头,后跟(以给定顺序): a whitespacezero or more non > characters a whitespace zero or more non > charactersitemprop=" preceded by a spacezero or more non < charactersoptional />

上述正则表达式将无法确保标签的属性是正确的平衡与问候'" ,也不如它包含非法字符/语法,它就会失败。它只会断言标记有一个开始,一个名称,包括超过空格,这是itemprop属性,并且标记已关闭。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM