繁体   English   中英

如何使用正则表达式从字符串中提取数字?

[英]How can I extract a number out of a string using regex?

我有一条很长的线,它可以更长,但我决定把这部分线:

/ "},{"文本":"36"

我想从字符串中获取数字。 或从整行中获取特定于 char / 和文本之后的此数字:“36” 该行太长,无法在此处发布。

我试过这个:

private void GetNumber()
        {
            string subjectstring = "/ "},{"text":"36"";

            string resultString = Regex.Match(subjectstring, @"\d+").Value;
        }

问题是我在行的右侧遇到了一些错误:

string subjectstring = "/ "},{"text":"36"";

我得到的错误截图:

错误

好像你的问题实际上是2个问题。

1.为什么我在初始化字符串时会报错"/ "},{"text":"36""

这是因为引号表示字符串序列的开始/结束。 由于您的字符串本身有多个引号,因此编译器认为您想要结束该字符串并稍后再次启动它,并且中间的一些字符可能只是在您的程序中随机循环,这会导致编译器错误。

要解决此问题,请在每个应该是值的一部分的引号前面使用\ ,以告诉编译器您还没有尝试结束字符串。 在您的示例中,它应该如下所示: "/ \"},{\"text\":\"36\""

2. 如何使用 Regex 从字符串中提取数字?

无论通过正则表达式的格式如何,您是否只想在任何类型的字符串中获取一个数字? 如果是这种情况,您所要做的就是:

var result = int.Parse(new Regex(@"\d+").Match("/ \"},{\"text\":\"36\"").Value); // Outputs 36 as an integer

但是,我强烈建议不要将正则表达式用于这样的简单任务,因为它们的性能非常高。 这是一个更好的方法: https://stackoverflow.com/a/15669520/9988162

如果您的格式一致,请更新您的问题,以便我们为其构建格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM