如何取代ereg?

Sha*_*awn 10 php regex pcre posix-ere

我得到以下消息,我必须使用但不写的一些PHP:

Deprecated: Function ereg() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/html2fpdf.php on line 466
Run Code Online (Sandbox Code Playgroud)

这是第466行:

if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
Run Code Online (Sandbox Code Playgroud)

我试过简单地用preg_match替换,但它无法识别正则表达式中的=修饰符.我对正则表达式不太好并且解决这个问题需要我学习正则表达式ereg需要和regexp preg_match需要(其中如果我没有弄错的话,那就不同了......你们能帮我解决这个问题吗?

谢谢

Gum*_*mbo 6

POSIX扩展正则表达式(POSIX ERE,由其使用ereg)和Perl-combatible正则表达式(PCRE,由其使用preg_match)非常相似.除了一些特殊的POSIX表达式,PCRE是POSIX ERE的超集.

这意味着您只需要将POSIX ERE正则表达式放入分隔符(此处/)并转义正则表达式中该字符的任何出现,并且您有一个有效的PCRE正则表达式:

/^([^=]*)=["']?([^"']*)["']?$/
Run Code Online (Sandbox Code Playgroud)

所以:

preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/', $v, $a3)
Run Code Online (Sandbox Code Playgroud)