正则表达式非可打印字符加上货币符号
问题描述:
我想匹配非打印字符加货币符号以下匹配不可打印,如何添加对货币符号的期望?正则表达式非可打印字符加上货币符号
$str = preg_replace('/[[:^print:]]/', '', $str);
答
的\p{Sc}
图案货币符号匹配时,你只需要它放入否定的字符类(或在POSIX术语括号表达式)。
使用
$re = '/(*UTF)[^[:print:]\p{Sc}]+/';
echo preg_replace($re, '', '£aA€');
详细:
-
(*UTF)
- 一个PCRE动词,使PCRE引擎把字符串作为一个Unicode字符串,而不是一个字节的字符串(注意,我们不能用/u
修改,因为它使双方(*UTF)
和(*UCP)
动词,后者使得所有的子模式都可以识别Unicode,并且[^[:print:]]
开始匹配更多的字符) -
[^[:print:]\p{Sc}]+
- 匹配除以下之外的任何1个或多个符号(由于+
量词): 个-
[:print:]
- 可打印字符 -
\p{Sc}
- 货币符号
-
我想保持货币符号我认为删除它们? – user3131345
是不是你在你的问题 – Fallenhero
@ user3131345说:这是否意味着你需要的是'的preg_replace( '/ [^ [:打印:]] + /', '',$ STR)'? –