PHP RegEx 错误未知修饰符 '('

标签 php regex

我有这个正则表达式:

([http://some.url.com/index.php?showtopic=\"]*)([0-9]+(?:\.[0-9]*)?)

用于从论坛中提取主题链接

现在当我在我的脚本中使用它时

$url = "([http://some.url.com/index.php?showtopic=\"]*)([0-9]+(?:\.[0-9]*)?)";

preg_match_all 吐出:“未知修饰符‘(’”

这也是对preg_match的调用

preg_match_all($url, $str, $matches,PREG_OFFSET_CAPTURE,3);

谁能帮我解决这个明显愚蠢的问题

最佳答案

您需要将正则表达式用定界符包裹起来。任何不是特殊 PCRE 元字符的字符都可以,所以我将使用 #:

$url = "#([http://some.url.com/index.php?showtopic=\"]*)([0-9]+(?:\.[0-9]*)?)#";

您可以在 the PHP manual section for PCRE delimiters 中了解有关分隔符的更多信息.

关于PHP RegEx 错误未知修饰符 '(',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888496/

相关文章:

php - 有没有像python的zip这样的php函数?

php - 为什么我的 php 行不能在我的 html 文件中工作?

php - 为什么我不能在用 php 旋转后使 png 的背景透明?

java - 用于查找字符串的正则表达式模式包含一些单词并且不包含其他单词

python - nltk 的 text6 中第一个字母为大写,所有其他字母为小写

php - 如何在按下按钮时执行脚本(并最终转移到另一个 URL)?

php - 有没有更有效的方法?

python - 合并 json 中的重复键

java - 防止正则表达式过早捕获

RegEx 未找到所有匹配项