正则表达式非可打印字符加上货币符号

问题描述:

我想匹配非打印字符加货币符号以下匹配不可打印,如何添加对货币符号的期望?正则表达式非可打印字符加上货币符号

$str = preg_replace('/[[:^print:]]/', '', $str); 

\p{Sc}图案货币符号匹配时,你只需要它放入否定的字符类(或在POSIX术语括号表达式)。

使用

$re = '/(*UTF)[^[:print:]\p{Sc}]+/'; 
echo preg_replace($re, '', '£aA€'); 

regex demoPHP demo

详细

  • (*UTF) - 一个PCRE动词,使PCRE引擎把字符串作为一个Unicode字符串,而不是一个字节的字符串(注意,我们不能用/u修改,因为它使双方(*UTF)(*UCP)动词,后者使得所有的子模式都可以识别Unicode,并且[^[:print:]]开始匹配更多的字符)
  • [^[:print:]\p{Sc}]+ - 匹配除以下之外的任何1个或多个符号(由于+量词): 个
    • [:print:] - 可打印字符
    • \p{Sc} - 货币符号
+0

我想保持货币符号我认为删除它们? – user3131345

+0

是不是你在你的问题 – Fallenhero

+0

@ user3131345说:这是否意味着你需要的是'的preg_replace( '/ [^ [:打印:]] + /', '',$ STR)'? –