【发布时间】:2021-09-01 10:53:36
【问题描述】:
我在 PHP 中使用 preg_match 和 REGEX 来更改包含以下内容的字符串的路径变量:
“任何字符 - 油漆,1 到 14 之间的旧数字 - 任何字符”
我放了有效字符串的例子:
-油漆,老 12
-油漆,旧 0a
-油漆,旧 6b
...
我使用 preg_match 如下:
if(preg_match("/*paint, old ^([1-9]|1[0-4])*/",$ubicacion))
{
...
}
else
{
...
}
但它给了我这个错误:preg_match (): Compilation failed: nothing to repeat at offset 0
你知道什么是失败的吗?
【问题讨论】:
-
删除
*和^字符。你可能想要/\bpaint\s*(\d+[a-zA-Z]*)/之类的东西。见this regex demo。 -
那么,您不需要匹配
-paint, old 0a中的任何内容?什么是预期的输出?请参阅^.paint,\s+old\s+(1[0-4]|[0-9]).$regex101.com/r/dQuVR4/1。它是否按预期工作? -
正确,您应该在
preg_*函数中使用正则表达式分隔符。请参阅下面的答案。
标签: php regex preg-match