C# 在C中用正则表达式解析数据#

C# 在C中用正则表达式解析数据#,c#,regex,C#,Regex,我有字符串:文本和一些东西,比如f213@@@1,9+1,11@等等,还有litle more等等 我想现在得到@-1,9+1,11@.数字不是固定的,可以更改 我的正则表达式不起作用: (@-([0-9]+)(,)([0-9]+)(+)([0-9]+)(,)([0-9]+)(@) 有人能看到我的正则表达式中的错误吗?您需要避开您的加号: (@@ -)([0-9]+)(,)([0-9]+)( \+)([0-9]+)(,)([0-9]+)( @@) 顺便说一下,这是有史以来最好的工具:当尝试查看

我有字符串:文本和一些东西,比如
f213@@@1,9+1,11@
等等,还有litle more等等

我想现在得到
@-1,9+1,11@.
数字不是固定的,可以更改

我的正则表达式不起作用:

(@-([0-9]+)(,)([0-9]+)(+)([0-9]+)(,)([0-9]+)(@)


有人能看到我的正则表达式中的错误吗?

您需要避开您的加号:

(@@ -)([0-9]+)(,)([0-9]+)( \+)([0-9]+)(,)([0-9]+)( @@)

顺便说一下,这是有史以来最好的工具:当尝试查看正则表达式正在做什么时

您需要避开您的加号:

(@@ -)([0-9]+)(,)([0-9]+)( \+)([0-9]+)(,)([0-9]+)( @@)

顺便说一下,这是有史以来最好的工具:当尝试查看正则表达式正在做什么时

您是否考虑过使用
String.Split()


您是否考虑过使用
String.Split()


也许还有其他解决方案:

Regex.IsMatch(yourString, @"@@\s(.+?)\s(.+?)\s@@", RegexOptions.Singleline);

以您的示例为例,第1组为“-1,9”,第2组为“+1,11”。

可能是另一种解决方案:

Regex.IsMatch(yourString, @"@@\s(.+?)\s(.+?)\s@@", RegexOptions.Singleline);

以你的例子来说,第一组是“-1,9”,第二组是“+1,11”。

(+)应该是(+\+)这是一个非常奇怪的正则表达式。他们没有把正则表达式弄错,但是你也不需要任何圆括号,除非你想捕捉例如数字本身<代码>@-[0-9]+,[0-9]+\+[0-9]+,[0-9]+@一段实际的数据和不说等如何。提供所有不同的组合-1@OmegaMan你的意思是你不能从正则表达式中分辨出OP提供了什么要求?Downvote有点苛刻…(+)应该是(+\+)这是一个非常奇怪的regexp,虽然。他们没有把regex弄错,但是你也不需要任何圆括号,除非你想捕捉例如数字本身<代码>@-[0-9]+,[0-9]+\+[0-9]+,[0-9]+@一段实际的数据和不说等如何。提供所有不同的组合-1@OmegaMan你的意思是你不能从正则表达式中分辨出OP提供了什么要求?否决票有点苛刻。。。