大家好,试图将我的正则表达式排序为 bbcodes。
我现在有这个网址:
"/\[url\=\'(.+?)\'\](.+?)\[\/url\]/is",
那只会得到已经包含在''中的url,我怎样才能让它检查带有和不带单引号的url?
你可以使用这个正则表达式:
\[url=(?:'([^']+)'|"([^"]+)")\](.+?)\[\/url\]
它接受单引号、双引号和无引号分隔的 url 值。缺点是您必须检查多个捕获组才能获取 URL 属性值。
以下是捕获组:
如果您不允许方括号出现在 URL 标记之间,则可以改用以下正则表达式。在这种情况下,它将更快地找到匹配项。
\[url=(?:'([^']+)'|"([^"]+)")\]([^\[]+)\[\/url\]
您可以使用交替的模式,即使用竖线 (|) 的结构。
"/\[url\=(\'(.+?)\'|([^'].+?))\](.+?)\[\/url\]/is",