如何在 php preg_match 中的 {} 括号之间包含变量?

How do I include variable between {} brackets in a php preg_match?

所以我目前有这个 php 代码

preg_match('/^([^.!?]*[\.!?]+){0,**3**}/', $text, $abstract);

我希望它是一个变量示例而不是数字 3 >

preg_match('/^([^.!?]*[\.!?]+){0,**$variable**}/', $text, $abstract);

请帮忙,非常感谢:)

在 php 中,' 引号之间的内容是字面意思。所以 '$myVar' 不是 $myVar 的值,它实际上是字符串 "$myVar".

如果你想要一个变量,你可以像 '/^([^.!?]*[\.!?]+){0,' . $variable . '}/'

那样连接字符串

在其他情况下(不是正则表达式),您可以改用 " 引号。

编辑; PHP string concat 是 .,不是 + 干得好,自己 >_>

使用双引号代替单引号,变量将被替换:

preg_match("/^([^.!?]*[\.!?]+){0,$variable}/", $text, $abstract);

好的,所以使用 php 连接解决了问题,就像在连接字符串时一样...。我之前尝试这样做时的问题是我使用的是 + 而不是 .和其他语言一样。

现代码如下

preg_match('/^([^.!?]*[\.!?]+){0,' . $var . '}/', $text, $abstract);