我想验证多行字符串是否只包含我指定格式的元标记。例如,它只能包含以下一个或多个:
<meta property="og:[anything]" content="[anything]"/>
其中[任何]可以是任何字符的0或更多。
元标记可能会也可能不会被新行分隔,所以这也没关系:
<meta property="og:[anything]" content="[anything]"/>
<meta property="og:[anything]" content="[anything]"/>
<meta property="og:[anything]" content="[anything]"/>
这是我现在的正则表达式:
^(?:<meta [^>]*property=[\"']og:.+[\"'] [^>]*content=[\"']([^'^\"]+?)[\"'][^>]*>)(?:\n*)$
如果标签位于同一条线上,或者标签带有换行符,则无效,但不适用于多行标签。
如何才能让它与 这些元标记在线或多行匹配?
答案 0 :(得分:1)
^(?:\s*<meta\s*property=["']og:.+?["']\s*content=["'].+?["']\s*\/>\s*)+$