【发布时间】:2023-02-21 00:23:09
【问题描述】:
我需要删除收到的字符串中的以下字符:
U+0020 (space)
U+00A0 (no-break space)
U+1680 (ogham space mark)
U+2000 (en quad)
U+2001 (em quad)
U+2002 (en space)
U+2003 (em space)
U+2004 (three-per-em space)
U+2005 (four-per-em space)
U+2006 (six-per-em space)
U+2007 (figure space)
U+2008 (punctuation space)
U+2009 (thin space)
U+200A (hair space)
U+202F (narrow no-break space)
U+205F (medium mathematical space)
U+3000 (ideographic space)
U+2028 (line separator)
U+2029 (paragraph separator)
我发现大多数列出的,我可以使用以下正则表达式删除:
\p{Zs}|\p{Zl}|\p{Zp}
这应该涵盖除 U+1680 之外的所有内容。根据this site,模式为奥格姆空间标记应该是\p{InOgham},但是当我去正则表达式测试网站上测试时,没有人接受它。
是否有具体的表达方式,或者\p{Zs} 也涵盖了它?
【问题讨论】:
-
InOgham 是whole ogham block。无论如何,
\u1680可能是一个安全的选择。