【发布时间】:2013-02-28 09:15:30
【问题描述】:
我正在尝试匹配一个字符串以查看它是否仅由字母组成。应允许使用各种字母。所以典型的a-zA-Z,还有áàéèó...等。
我尝试将其与以下正则表达式匹配:([\S])*
但这也允许使用\/<>*()... 等字符。这些显然是不属于名称的字符。当我只想允许字母和“特殊”字母时,正则表达式看起来如何?
【问题讨论】:
-
因为如果它在 C# 和 Javascript 中工作,它就不能只在 C# 中工作?但是好的,然后这个:Regex accent insensitive?,它也说“使用 \w+”。
-
All kinds of letters should be allowed:这是否意味着您也希望允许使用中文、韩文、泰文等字符? -
CodeCaster,
\w对于几乎所有现实世界的使用来说都是可怕的。它允许字母、数字和下划线,在许多正则表达式引擎中,它不支持 Unicode,实际上只匹配 ASCII。它的意思是在 30 年前(猜测)作为匹配常见编程语言中的标识符的粗略快捷方式,它是处理实际文本的糟糕且几乎无用的选择。而且,基于\w,\b属于几乎没用的同一类。 -
CodeCaster,我收回之前的评论。他们实际上需要一个同时适用于 C# 和 JavaScript 的正则表达式,但从问题中并不明显(或者他们当时甚至不知道)。