Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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# 如何为mach特殊字符创建正则表达式_C#_Regex - Fatal编程技术网

C# 如何为mach特殊字符创建正则表达式

C# 如何为mach特殊字符创建正则表达式,c#,regex,C#,Regex,我想为这个字符串值创建一个正则表达式: 100[some digits][some digits | some words | @][some digits | some words | @][some digits] 例如: 100[1234567855][1122bb33@@aaa][222@ffff@@@][1234567890]# 我使用了这个正则表达式: (100)\[(\d+)\]\[\[(\d+)|(\w+)|(\@)\[(\d+)|(\w+)|(\@)\]\[(\d+)\]#

我想为这个字符串值创建一个正则表达式:

100[some digits][some digits | some words | @][some digits | some words | @][some digits]
例如:

100[1234567855][1122bb33@@aaa][222@ffff@@@][1234567890]#
我使用了这个正则表达式:

(100)\[(\d+)\]\[\[(\d+)|(\w+)|(\@)\[(\d+)|(\w+)|(\@)\]\[(\d+)\]#$
但它不能正常工作。 有什么想法吗

谢谢你的帮助

^(100)\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]#$
您可以改为使用这个。请参阅演示

您可以通过在字符类中包含all来改进正则表达式

^(100)\[(\d+)\]\[([\da-zA-Z@]+)\]\[([\da-zA-Z@]+)\]\[(\d+)\]#$

您捕获的是
(\d+)(\w+)(\@)
,而您的测试字符串中有两到三次

您的正则表达式在某些地方是错误的

(100)\[(\d+)\]\[\[(\d+)|(\w+)|(\@)\[(\d+)|(\w+)|(\@)\]\[(\d+)\]#$
                ^^               ^^                ^
                 1               23                4
  • 1:重复\[
  • 2:失踪+
  • 3:缺少\]
  • 4:失踪+
尝试:


\w
\d
@
放入字符类中,以匹配单词、数字或
@
符号

@"^100\[(\d+)\]\[([\d@\w]+)\]\[([\d@\w]+)\]\[(\d+)\]#$"
由于
[
是正则表达式中的一个特殊字符,因此必须对该字符进行转义才能匹配文字
[
符号。
[\d@\w]+
匹配一个或多个数字或单词字符或
@

试试这个 这将确保后面有一个100,后跟您想要的表达式

^:表达的开始

[^100]:以100开头

^(.?$|[^100]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\])#

您正在开发的环境是什么?是asp.net吗?我建议您使用自定义验证器。因为您可以执行验证器的相同功能,而无需通过正则表达式。我提供了正确的匹配信息。我在[]中保存每个数据在seprate gorup中。只需通过捕获组围绕角色类。请参阅我的更新。查看评论:您应该为您的答案提供一些上下文。稍微解释一下它们是如何工作的。
^(.?$|[^100]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\])#