包含特殊字符的正则表达式

Regex including special characters

我正在尝试在 .NET 中为以下字符创建一个正则表达式模式,但我的上述表达式不起作用并且出现错误。任何帮助表示赞赏。该模式应该只接受包含以下任何字符的字符串

a-z A-Z 0-9 @ # $ € ƒ £ ¥ % & * ( ) - _ + ] [ } { ' ; : = ` . , / \ ^

我有的是

const string pattern = @"[a-zA-Z0-9\@\#$\€\ƒ\£\¥\%\&\*\(\)\-\_\+\]\[\}\{\'\;\:\=\`\.\,\/\\^]+$";

你错过了字符串的开头并且转义过度了,试试这个:

^[a-zA-Z0-9@#$€ƒ£¥\%&\*\(\)\-_\+\]\[\}\{';:=`\.,/\\^]+$

不要使您的模式具有包容性并尝试匹配所有字符,而应使模式具有排他性并告诉它不匹配什么。

例如,在 CSV 设置中假设您的一些角色如下

£36 %12,

所以我们想要除逗号以外的所有内容,所以我们使用模式集否定 [^ ] 这将允许我们通过指定此模式来使用逗号以外的所有内容:

([^,]+)

以上数据会为我们提供哪些

£36 %12

这就是集合否定的美妙之处,在于您指定一个锚点 字符 并消耗锚点之前的所有内容。