包含特殊字符的正则表达式
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
这就是集合否定的美妙之处,在于您指定一个锚点 字符 并消耗锚点之前的所有内容。
我正在尝试在 .NET 中为以下字符创建一个正则表达式模式,但我的上述表达式不起作用并且出现错误。任何帮助表示赞赏。该模式应该只接受包含以下任何字符的字符串
a-z A-Z 0-9 @ # $ € ƒ £ ¥ % & * ( ) - _ + ] [ } { ' ; : = ` . , / \ ^
我有的是
const string pattern = @"[a-zA-Z0-9\@\#$\€\ƒ\£\¥\%\&\*\(\)\-\_\+\]\[\}\{\'\;\:\=\`\.\,\/\\^]+$";
你错过了字符串的开头并且转义过度了,试试这个:
^[a-zA-Z0-9@#$€ƒ£¥\%&\*\(\)\-_\+\]\[\}\{';:=`\.,/\\^]+$
不要使您的模式具有包容性并尝试匹配所有字符,而应使模式具有排他性并告诉它不匹配什么。
例如,在 CSV 设置中假设您的一些角色如下
£36 %12,
所以我们想要除逗号以外的所有内容,所以我们使用模式集否定 [^ ]
这将允许我们通过指定此模式来使用逗号以外的所有内容:
([^,]+)
以上数据会为我们提供哪些
£36 %12
这就是集合否定的美妙之处,在于您指定一个锚点 字符 并消耗锚点之前的所有内容。