半角正则表达式POSIX表达式

问题描述 投票:0回答:1

[有一个POSIX括号表达式列表,例如[:alnum:][:alpha:] ...

https://www.regular-expressions.info/posixbrackets.html

哪个是半个空格?

编辑:实际上,我正在使用Smarty代码中的PHP regex_replace,如下所示

{$title|regex_replace:'/[^[:punct:][:alnum:][:space:]]/u':''}

现在我想知道哪个字符类包含半角空格?

php regex smarty
1个回答
0
投票

标准POSIX字符类通常捕获字符的classes。如果要匹配字符U+2002,则可以完全匹配该字符,无论是从字面上还是使用编程语言支持的任何符号表示。

Python:

r = re.compile('\u2002')
if r.match(somestring):
    ...

当然,您不需要正则表达式:

if '\u2002' in somestring:
    ...

((我猜你的意思是U + 2002;有一个number of other spaces。现代POSIX [:space:]应该与所有它们匹配。)

更新:如果PHP的[:space:]不适用于POSIX和/或Unicode,则可能只需将代码点添加到表达式中。

{$title|regex_replace:'/[^[:punct:][:alnum:][:space:]\x{2002}]/u':''}

(对Regular expressions for a range of unicode points PHP表示敬意

© www.soinside.com 2019 - 2024. All rights reserved.