PHP 中的正则表达式与 preg_match

维基

我在 PHP 中使用 preg_match 和 REGEX 来更改包含以下内容的字符串的路径变量:

“任何字符 - 油漆,一到十四之间的旧数字 - 任何字符”

我放了一些有效字符串的例子:

- 油漆,旧 12

- 油漆,旧的 0a

-油漆,旧 6b

...

我使用了 preg_match 如下:

if(preg_match("/*paint, old ^([1-9]|1[0-4])*/",$ubicacion))
{
    ...
}
else
{
    ...
}

但它给了我这个错误:preg_match (): 编译失败:在偏移 0 处没有重复

你知道什么是失败吗?

维克多·斯特里比尤夫

preg_match (): Compilation failed: nothing to repeat at offset 0多数情况下是由于量词在正则表达式的开始存在。正则表达式不能以量词开头,即/+1/, /*1//{2,}1/并且/{2,5}1/会抛出这个错误。

您可以使用

if (preg_match('~\bpaint,\s+old\s+(1[0-4]|[1-9])(?!\d)~i', $string)) {
...
}

请参阅正则表达式演示此 PHP 演示详情

  • \b - 一个词边界
  • paint,-paint,字符串
  • \s+- 一个或多个空格 - old- 一个old字符串
  • \s+ - 一个或多个空格
  • (1[0-4]|[1-9])-1后跟数字 from 0to4或非零数字
  • (?!\d) - 后面没有任何其他数字。

请注意,您不需要在开始和结束时添加任何模式来实际使用预期匹配前后的文本,因为您只需要一个布尔结果。

最后i以不区分大小写的方式使模式匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

preg_match的正则表达式

PHP preg_match使用URL作为正则表达式

来自Multine的Array的PHP正则表达式preg_match与所有块都不匹配

当在不同的变量上使用相同的正则表达式时,php“ preg_match”之谜-变得相同。为什么?

PHP中的正则表达式返回preg_match():编译失败:PCRE不支持\ L,\ l,\ N {name},\ U或\ u

不允许在PHP preg_match正则表达式中使用免费电话

正则表达式php中的Preg_match替代值

PHP preg_match使用正则表达式的简单数学表达式

即使存在正则表达式模式,PHP preg_match也会失败

php preg_match与正则表达式无法正常工作

正则表达式适用于Javascript,但不适用于PHP preg_match

PHP正则表达式转义字符错误:“ preg_match():编译失败:缺少”

正则表达式和preg_match

php preg_match问题,带有“ [image:内嵌图像1]”正则表达式

PHP preg_match和正则表达式

PHP preg_match与表达式的模式不匹配

php和apache更新后Unicode表达式在preg_match中失败

PHP中的preg_match(XML提取)

正则表达式,用于以空格分隔的输入要在php的preg_match中使用

PHP:正则表达式,preg_split

php preg_match和regex正则表达式

PHP preg_match()正则表达式模式与空格匹配的问题

PHP preg_match_all正则表达式

正则表达式(PHP中的preg_match):输出数组中的最后一组不能正常工作

php,正则表达式preg_match特定单词0或1次

PHP过滤器使用preg_match正则表达式获取HTTP / HTTPS

使用 preg_match 和正则表达式进行 PHP 表单验证

奇怪的 PHP 正则表达式 Preg_Match 错误?

preg_match 语句中的正则表达式