C# 用于在大括号中拆分分隔字符串的正则表达式模式

C# 用于在大括号中拆分分隔字符串的正则表达式模式,c#,arrays,regex,C#,Arrays,Regex,我有以下字符串 {token1;token2;token3@somewhere.com;...;tokenn} 我需要一个Regex模式,它将在字符串数组中给出一个结果,例如 token1 token2 token3@somewhere.com ... ... ... tokenn 如果您可以使用相同的模式来确认字符串的格式,这意味着字符串应该以大括号开始和结束,并且锚定中至少存在2个值,我们将非常感谢您的建议。您可以将锚定正则表达式与命名的重复捕获组一起使用: \A{(?<val&g

我有以下字符串

{token1;token2;token3@somewhere.com;...;tokenn}
我需要一个
Regex
模式,它将在字符串数组中给出一个结果,例如

token1
token2
token3@somewhere.com
...
...
...
tokenn

如果您可以使用相同的模式来确认字符串的格式,这意味着字符串应该以大括号开始和结束,并且锚定中至少存在2个值,我们将非常感谢您的建议。

您可以将锚定正则表达式与命名的重复捕获组一起使用:

\A{(?<val>[^;]*)(?:;(?<val>[^;]*))+}\z

您可以将锚定正则表达式与命名的重复捕获组一起使用:

\A{(?<val>[^;]*)(?:;(?<val>[^;]*))+}\z
阅读它(类似于你的问题):

对于您的
RegEx
测试,请使用以下内容:

但是,
RegEx
是一个资源密集型的、缓慢的操作

在您的情况下,最好使用
string
类的
Split
方法,例如:
“token1;token2;token3;…;tokenn”。Split(“;”)。它将返回您想要获取的字符串集合。

阅读它(与您的问题类似):

对于您的
RegEx
测试,请使用以下内容:

但是,
RegEx
是一个资源密集型的、缓慢的操作



在您的情况下,最好使用
string
类的
Split
方法,例如:
“token1;token2;token3;…;tokenn”。Split(“;”)。它将返回您想要获得的字符串集合。

什么是正则表达式风格?您使用的是什么编程语言?大多数语言都支持拆分(“;”)
?我必须在C#@PavneetSingh中使用它。请查看我在结果示例下面的评论:)好消息,在C#中,您可以使用正则表达式来实现这一点。顺便说一句,你为什么需要正则表达式?您确实可以使用
s.Trim('''''}','{').Split(';')
然后检查数组中是否有2个或更多项。查看正则表达式的风格是什么?您使用的是什么编程语言?大多数语言都支持
Split(“;”)
?我必须在C#@PavneetSingh中使用它。请查看我在结果示例下面的评论:)好消息,在C#中,你可以使用正则表达式。顺便说一句,你为什么需要正则表达式?你真的可以使用
s.Trim(''''}','{').Split(';'))
然后检查数组中是否有2个或更多项。我想,这不起作用,你能粘贴{Teddy;Bear;Giant;Gorilla}Lion的拆分结果吗?有人删除了我粘贴该示例的答案(很抱歉),顺便问一下,为了确保至少有2个值,我们不能使用类似{2,}的量词吗它工作得很好。您不需要任何限制量词。我发布了从CaptureCollection获取值所需的代码。这是我使用模式得到的异常:附加信息:解析“\A{(?[^;]*)(?:;(?[^;]*)+}\z”-无效的组名:组名必须以单词字符开头。啊,抱歉,等等,我的坏消息,没有注意到spacesI wan不使用Regex.Match来确认输入字符串格式,使用Regex.Split来直接获取数组。这是可能的吗?或者我是在拐弯抹角吗?;)如果我必须进入显式循环,那么我永远不会使用问这个问题恐怕不行,你能粘贴{Teddy;Bear;Giant;Gorilla}Lion的拆分结果吗?有人删除了我粘贴示例的答案(很抱歉),顺便问一下,为了确保至少有2个值,我们不能使用像{2,}这样的量词吗它工作得很好。您不需要任何限制量词。我发布了从CaptureCollection获取值所需的代码。这是我使用模式得到的异常:附加信息:解析“\A{(?[^;]*)(?:;(?[^;]*)+}\z”-无效的组名:组名必须以单词字符开头。啊,抱歉,等等,我的坏消息,没有注意到spacesI wan不使用Regex.Match来确认输入字符串格式,使用Regex.Split来直接获取数组。这是可能的吗?或者我是在拐弯抹角吗?;)如果我必须进入显式循环,那么我永远不会使用询问此问题拆分不允许验证字符串。您的结果示例保留以前集合的所有元素。您希望如何验证集合的元素?拆分不允许验证字符串。您的结果示例保留以前集合的所有元素。您希望如何验证集合的元素?