Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式中的法语/葡萄牙语扩展ASCII符号_C#_Regex_French - Fatal编程技术网

C# 正则表达式中的法语/葡萄牙语扩展ASCII符号

C# 正则表达式中的法语/葡萄牙语扩展ASCII符号,c#,regex,french,C#,Regex,French,我需要编写一个编辑控件掩码,该掩码应该接受[a-zA-Z]字母以及扩展的法语和葡萄牙语符号,如[a-zA-Z]。掩码应同时接受大写和小写符号。 如果发现两项建议: [\p{L}] 及 编写这样一个正则表达式的正确方法是什么 更新: 我的问题是关于形成一个应该匹配(而不是过滤)法语和葡萄牙语字符的regexp,以便在编辑控件中显示它。不区分大小写的解决方案对我没有帮助。 [\p{L}]似乎是一个Unicode字符类,我需要一个ASCII正则表达式。 允许使用数字,但允许使用特殊字符,如!@#$

我需要编写一个编辑控件掩码,该掩码应该接受
[a-zA-Z]
字母以及扩展的法语和葡萄牙语符号,如
[a-zA-Z]
。掩码应同时接受大写和小写符号。 如果发现两项建议:

[\p{L}] 

编写这样一个正则表达式的正确方法是什么

更新: 我的问题是关于形成一个应该匹配(而不是过滤)法语和葡萄牙语字符的regexp,以便在编辑控件中显示它。不区分大小写的解决方案对我没有帮助。 [\p{L}]似乎是一个Unicode字符类,我需要一个ASCII正则表达式。 允许使用数字,但允许使用特殊字符,如!@#$%^&*)\uz+}{|“?><是不允许的(应过滤)

我发现最有效的变体是[a-zA-Z0-9\u00B5-\u00FF]

问题是为什么[u249;ççççççççççççççççççççç231? 正如我从CP860(葡萄牙语代码页)和CP863(法语代码页)中看到的,它应该在\u0080-\u009F范围内


有人能解释一下吗?

字符[uùçççççççççççççççççççççççççççççççç

C#字符串是unicode的,它的正则表达式功能也是unicode的:

如果您确实必须指定一个固定的字符范围,那么在C语言中,您也可以按字面意思将其包括在内:

[a-zA-Z0-9µùàçéèçÇ]
或者,正如其他人已经建议的那样,使用“字母”匹配。因此,不需要您定义每个字母表中的字母,您也不需要自己跟上该定义的未来变化:

\p{L}

第三个有效选项是反转规范,只命名不允许使用的标点符号和控制字符。

对于服务器端验证,您可以依赖
^\p{L}+$
示例字符串末尾的µ可能重复?我认为即使不区分重音,它也不会等于m?我不需要它不区分大小写。如果用户从法语布局键盘输入µ符号,我需要一个与之匹配的regexp。C#不使用ASCII,因此没有ASCII正则表达式。(没有一种东西叫做扩展ASCII,所以这个术语的使用几乎总是不够充分。)(键盘布局是用户和操作系统之间的问题。也许你在应用程序中考虑的太多了,也许不是。)
\p{L}