我需要一个正则表达式来匹配ASCII非字母数字字符。该正则表达式不应匹配非ASCII字符。我正在使用以下内容:
"[\\u0000-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007f]"
Can I simplify this regex ?
是的,您可以使用字符类交集。例如:
[\\p{ASCII}&&\\P{Alnum}]
"[\\p{ASCII}&&[^\\p{Alnum}]]"
可能会起作用。 - Michael\P
是 \p
的相反。 - Unihedron[a&&[^\s]]
> [a&&\S]
。 - Unihedron^(?=[^0-9a-zA-Z]+$)\p{ASCII}+$
^(?!\p{Alnum}+$)\p{ASCII}+$
(?!\p{Alnum})\p{ASCII}
。为了在整个字符串上强制执行该条件,您可以这样做:^(?:(?!\p{Alnum})\p{ASCII})+$
。您的正则表达式匹配全是ASCII但不全是字母数字的字符串(也就是说,它必须至少包含一个非字母数字字符)。 - Alan Moore
[^a-zA-Z0-9]
不起作用? - Braj