如何转换HTML编码为文本
ereg_replace(".*\.(.*)$","\\1",$imgfile);
topreg_replace... ?
我遇到了些问题,需要解决它?
将ereg模式转换为preg,需要知道以下4点:
添加分隔符(/): 'pattern' => '/pattern/'
如果分隔符是模式的一部分,则转义分隔符: 'patt/ern' =>
'/patt\/ern/'
可以通过以下方式以编程方式实现:
$ereg_pattern = '<div>.+</div>';
$preg_pattern = '/' .addcslashes($ereg_pattern, '/') . '/';
eregi(不区分大小写匹配): 'pattern' => '/pattern/i'
因此,
如果您使用eregi函数进行不区分大小写匹配,请在新模式('/pattern/')的末尾添加'i'。
ASCII值: 在ereg中,如果您在模式中使用数字,则假定您正在引用字符的ASCII。 但是,在preg中,数字不被视为ASCII值。 因此,如果您的模式包含ereg表达式中的ASCII值(例如:换行符、制表符等),则将其转换为十六进制,并在前面加上\x。
示例:9(制表符)变成\x9或者使用\t。
希望这能帮助到您。
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg")
我不知道为什么PHP需要使用/
定界符。Perl、JS等语言使用它们的唯一原因是因为它们允许正则表达式字面量,而PHP不允许。
"/[a-z]/i"
。 - kennytm是有效的,将
$b设置为
string-without-slashes,您不必在传递给
preg_replace的正则表达式中转义
/`。 - Neek分隔符, 在这种情况下, 按照传统的方式,在表达式的开头和结尾添加任何字符,以及'/'字符 preg_replace('/.*\.(.*)$/',"\\1",$imgfile);
。这个正则表达式不是很好,最好使用strrpos并取substr()。
正则表达式比较慢,使用以下代码。 $extension=substr($imgName,strrpos($imgName,'.'));