我正在尝试从字符串中剥离所有字符,除了:
$
)_
)U+0080
和U+FFFF
之间的Unicode字符通过执行此操作,我获得了前三个条件:
preg_replace('/[^a-zA-Z\d$_]+/', '', $foo);
如何匹配第四个条件? I looked at using
\X
,但必须有比列出65000多个字符更好的方法。 最佳答案
您可以使用:
$foo = preg_replace('/[^\w$\x{0080}-\x{FFFF}]+/u', '', $foo);
\w
-等效于[a-zA-Z0-9_]
\x{0080}-\x{FFFF}
匹配代码点之间的字符U
+0080 and
U + FFFF` /u
在正则表达式中支持unicode