正则表达式匹配多行字符串中的多个元标记
Regex match multiple meta tags in multi line string
我想验证多行字符串是否只包含我指定格式的元标记。例如,它只能包含以下一项或多项:
<meta property="og:[anything]" content="[anything]"/>
其中 [anything] 可以是任意字符的 0 个或多个。
meta 标签可以用新行分隔,也可以不用,所以这样也可以:
<meta property="og:[anything]" content="[anything]"/>
<meta property="og:[anything]" content="[anything]"/>
<meta property="og:[anything]" content="[anything]"/>
这是我当前的正则表达式:
^(?:<meta [^>]*property=[\"']og:.+[\"'] [^>]*content=[\"']([^'^\"]+?)[\"'][^>]*>)(?:\n*)$
如果标签在同一行,或者如果有一个带有换行符的标签,它会起作用,但不适用于多行的标签。
如何让它匹配 仅 这些元标记,无论是在线还是多行?
怎么样^(?:\s*<meta\s*property=["']og:.+?["']\s*content=["'].+?["']\s*\/>\s*)+$
我想验证多行字符串是否只包含我指定格式的元标记。例如,它只能包含以下一项或多项:
<meta property="og:[anything]" content="[anything]"/>
其中 [anything] 可以是任意字符的 0 个或多个。
meta 标签可以用新行分隔,也可以不用,所以这样也可以:
<meta property="og:[anything]" content="[anything]"/>
<meta property="og:[anything]" content="[anything]"/>
<meta property="og:[anything]" content="[anything]"/>
这是我当前的正则表达式:
^(?:<meta [^>]*property=[\"']og:.+[\"'] [^>]*content=[\"']([^'^\"]+?)[\"'][^>]*>)(?:\n*)$
如果标签在同一行,或者如果有一个带有换行符的标签,它会起作用,但不适用于多行的标签。
如何让它匹配 仅 这些元标记,无论是在线还是多行?
怎么样^(?:\s*<meta\s*property=["']og:.+?["']\s*content=["'].+?["']\s*\/>\s*)+$