关于preg_match表达式感到困惑

3

preg_match使用类似于表达式的语法,例如

preg_match_all("/\[(.*?)\]/", $content, $matches); 

我对创建模式感到困惑,如何开发出/[(.*?)]/正则表达式?因为我正在尝试创建一个短代码,希望无论何处放置短代码,都可以从中获取短代码并清理和知道放置了什么短代码,例如 [shortcode app='slider' id='2'],我需要从短代码中提取 slider 和 2,以便展示幻灯片,并将其替换为短代码。


我不清楚你的问题。你需要在模式中修复什么吗? - Tᴀʀᴇǫ Mᴀʜᴍᴏᴏᴅ
我不确定如何创建这些模式。 - Usman Khan
我认为你可以检查一下你的问题中所做的编辑。(已经修复了你模式中的问题。) :) - Tᴀʀᴇǫ Mᴀʜᴍᴏᴏᴅ
我不知道它是如何被编辑的,但我只想知道这些模式是如何创建的。 - Usman Khan
它被SO社区的一位成员编辑过。 - Tᴀʀᴇǫ Mᴀʜᴍᴏᴏᴅ
@UsmanKhan,请查看 https://github.com/thunderer/Shortcode。 - Tomasz Kowalczyk
1个回答

3
这里是说明 \[ - 匹配 "[" 字符。 "\" 用于转义它,因为在正则表达式中我们有特殊含义。 ( - )将捕获内部部分以用作反向引用,而我们替换时要使用它 .* - 任何字符都可以出现在这里,除了换行符,并且可以出现0次或多次。 ? - 使前面的部分变成可选项(这里不需要,因为使用*已经照顾到了它,表示 0 次或多次)。 \] - 匹配一个字符 "]"。
从这里了解更多关于正则表达式的知识:http://www.regular-expressions.info/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接