相关疑难解决方法(0)

"未知"修饰符"c"在正则表达式中的含义是什么?

我是正规表达的新手,我需要一些帮助:).

我有这个:

$url = '<img src="http://mi.url.com/iconos/oks/milan.gif" alt="Milan">';
$pattern = '/<img src="http:\/\/mi.url.com/iconos/oks/(.*)" alt="(.*)"\>/i';

preg_match_all($pattern, $url, $matches);

print_r($matches);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

警告:preg_match_all()[function.preg-match-all]:未知修饰符'c'

我想选择'milan.gif'.

我怎样才能做到这一点?

php regex

1
推荐指数
1
解决办法
81
查看次数

我的代码中的未知修饰符

<? php
    $Src = 'images/pages/clients/logos/clnt_aljareera_img.jpg';
    $pttn= '/&Src:'.$Src.'/';
    $string=preg_replace($pttn,'',$string,1);
?>
Run Code Online (Sandbox Code Playgroud)

//输出错误:未知修饰符'p'

php modifier

1
推荐指数
2
解决办法
150
查看次数

PHP Regex"未知修饰符p"

正则表达式PHP代码

// If url matches regex
            $regex = "/^(/upload/temporary/)[0-9]{4}_[0-9]{2}_[0-9]{2}_[A-Za-z0-9._ /-]+.[A-z]{2,4}$/";
        if (preg_match($regex, $this->value)) {

            $this->valid();
        }
Run Code Online (Sandbox Code Playgroud)

错误信息

Warning: preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Unknown modifier 'p' in C:\Apache\www\profiletwist\lib\php\form\url.php on line 41
Call Stack
#   Time    Memory  Function    Location
1   0.0079  440016  {main}( )   ..\new.php:0
2   0.0964  667832  form->validate( )   ..\new.php:60
3   0.0968  668248  form_URL->validateUploadURL( )  ..\form.php:372
4   0.0969  668400  preg_match ( )  ..\url.php:41
Variables in local scope (#3)

$regex =



string '/^(/upload/temporary/)[0-9]{4}_[0-9]{2}_[0-9]{2}_[A-Za-z0-9._ /-]+.[A-z]{2,4}$/' (length=79)
Run Code Online (Sandbox Code Playgroud)

如何修复此"未知修饰符"错误的正则表达式不会发生?

最终,我想要一个正则表达式,以确保文本输入匹配:

"/upload/temporary/####_##_##_[A-z0-9 _-]+ "." [a-z]{3}
Run Code Online (Sandbox Code Playgroud)

这是文件名目标.开头不会改变,最后一部分可以是随机散列,后跟任意扩展.在正则表达式之后进行进一步处理,但这是第一次测试. …

php regex compiler-errors

1
推荐指数
1
解决办法
6130
查看次数

警告:preg_match():未知修饰符“&lt;”

我正在尝试运行我在在线 php regex 测试网站上调试的正则表达式。

这是完整的正则表达式:

$rule = '/[\s\S]*<(b|strong)>[\s\S]*notes:[\s\S]*<(\/b|\/strong)>([\s\S]*?)<(b|strong)>(sources|source|citation|data sources|last update)[\s\S]*/im';
Run Code Online (Sandbox Code Playgroud)

即使使用更简单的测试正则表达式:

$rule = "/[\s\S]*<(b|strong)>[\s\S]*/im";
Run Code Online (Sandbox Code Playgroud)

我仍然从这段代码中得到一个错误:

$matches = array();
preg_match($source_html, $rule, $matches);
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

警告:preg_match():未知修饰符“<” 在 .../FragmentGrabber.php 第 63 行

我不知所措,试图在我的本地机器上解决这个问题。有没有办法解决这个警告,让我的正则表达式正常工作。我试过修复我的正则表达式的转义字符,但这没有帮助。可能是字符编码问题?!请注意&lt;输出与<.

编辑:

这是我的课程的片段,如果有人真的想要,我会发布整个内容。

  // d() below is the Kint debugger.
  public function get_fragments_by_name($source_html, $name)
  {
    $matches = array();
    $rule = self::generate_regex_rule($name);
    preg_match($source_html, $rule, $matches);
    return $matches;
  }

  private function generate_regex_rule($name)
  {
    $end_tags = self::get_end_tag_options($name);
    $rule = "/[\s\S]*<(b|strong)>[\s\S]*/";# . $name . ":[\s\S]*<(\/b|\/strong)>([\s\S]*?)<(b|strong)>(" . $end_tags . ")[\s\S]*/im";
    d($rule);
    return $rule; …
Run Code Online (Sandbox Code Playgroud)

php regex

1
推荐指数
1
解决办法
2030
查看次数

为什么使用的分隔符会影响正则表达式的有效性?

我使用这个非常简单的正则表达式:

^[\x20-\x7E]+$
Run Code Online (Sandbox Code Playgroud)

当我尝试将它与一些PHP正则表达式函数一起使用时,例如preg_match(),当我使用~字符(代字号)作为分隔符时,它会在单一情况下抛出警告.

因此,执行以下行很顺利

preg_match("/^[\x20-\x7E]+$/", $s); # delimiter "/"
preg_match("!^[\x20-\x7E]+$!", $s); # delimiter "!"
preg_match("#^[\x20-\x7E]+$#", $s); # delimiter "#"
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这条线

preg_match("~^[\x20-\x7E]+$~", $s); # delimiter "~"
Run Code Online (Sandbox Code Playgroud)

发出警告

Warning: preg_match(): Unknown modifier ']' in some_script.php on line XX
Run Code Online (Sandbox Code Playgroud)

注意:只有当它与双引号一起使用时才会发生!

我一直使用代字号作为分隔符,直到这种情况从未遇到过问题,并且真的很想知道为什么会发生这种情况.找不到代字号在正则表达式中有一些特殊含义(我现在肯定它没有99%),或者它只是一个错误.

我当然可以解决这个问题,但问题是:代字号和任何其他分隔符有什么区别?

php regex

1
推荐指数
1
解决办法
81
查看次数

......中的未知修饰符'/'?它是什么?

当我写了下面,我得到这样的警告,它不匹配任何东西,但我敢肯定,这$row_search['content']包含$value...

preg_match_all("/[^\s]*".preg_quote($value)."[^\s]*/iu", $row_search['content'], $final_matched);

WARNING:preg_match_all() [function.preg-match-all]: Unknown modifier '/' in C:\xampp\htdocs\finance\search\search.php on line 82
Run Code Online (Sandbox Code Playgroud)

为什么我收到这样的警告信息?

谢谢

php regex warnings preg-match

0
推荐指数
1
解决办法
2245
查看次数

未知修饰符'l'错误

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'l' in /var/www/test.php on line 9
Run Code Online (Sandbox Code Playgroud)

它说我的正则表达式有一个未知的修饰符,但我不确定触发错误到底发生了什么

preg_match_all("/\<select id\=\'subscription_division_id\'(.+?)</select>\/is", $html, $matches);
Run Code Online (Sandbox Code Playgroud)

php regex

0
推荐指数
1
解决办法
3119
查看次数

php preg_replace返回未知修饰符'+'?

试图解决这个正则表达式.它应该在字符串中找到任何超链接并在它们周围放置锚标记.继续回来,未知的标识符'+'.我认为加唱是正则表达式的一部分?

<?php

//replace links with clickable links

// match protocol://address/path/
$comments = preg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*", "<a href=\"\\0\">\\0</a>", $comments);

// match www.something
$comments = preg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\">\\2</a>", $comments);

?>
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏.

php regex

0
推荐指数
1
解决办法
1295
查看次数

PHP警告:preg_match()[function.preg-match]:未知的修饰符

任何人都知道为什么会出现这种情况?尝试使用此方法根据用户代理重定向用户.当用户代理是搜索机器人时,会出现此警告.Windows XP MSIE 8用户代理也被错误地重定向.

"警告:preg_match()[function.preg-match]:第36行/.../getos.php中的未知修饰符'c'"

function getOS($userAgent) {
  $oses = array (
    'iPhone' => '(iPhone)',
    'iPad' => 'iPad',
    'Android' => 'Android',
    'Windows 3.11' => 'Win16',
    'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', // Use regular expressions as value to identify operating system
    'Windows 98' => '(Windows 98)|(Win98)',
    'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
    'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
    'Windows 2003' => '(Windows NT 5.2)',
    'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
    'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
    'Windows …
Run Code Online (Sandbox Code Playgroud)

php internet-explorer windows-xp googlebot internet-explorer-8

0
推荐指数
1
解决办法
1333
查看次数

preg_match错误未知修饰符'{'

这有什么问题?

if((preg_match('[a-zA-Z]{1,7}+',$_POST['naam'])) and (preg_match('[^\@\#\<\>\&\*\/]+[a-zA-Z0-9]+!',$_POST['password'])))
Run Code Online (Sandbox Code Playgroud)

第一个正则表达式我想要一个1-7长的字符串只包含字母.

第二个正则表达式我想要一个包含字母和数字的字符串!在末尾.

php regex

0
推荐指数
1
解决办法
724
查看次数