首页 > 解决方案 > 构建一个不包含您在匹配中查找的第一个和最后一个字符的正则表达式

问题描述

我有以下问题。

这是正则表达式的样子:

var regexTest = new Regex(@"'\d.*\d@");

这是字符串的样子:

var text = "dsadsadsadsa('1.222222@dsadsa'";

这就是我想要的结果:

1.222222

这就是我现在得到的结果......:

'1.222222@

标签: c#regex

解决方案


'你想提取和之间的浮点数",使用

var text = "dsadsadsadsa('1.222222@dsadsa'";
var regexTest = new Regex(@"'(\d+\.\d+)@");
var m = regexTest.Match(text);
if (m.Success)
{
    Console.WriteLine(m.Groups[1].Value);
}

在这里,(\d+\.\d+) 捕获任何 1+ 个数字,.然后将 1+ 个数字捕获到您可以使用 访问的 Group 1 中match.Groups[1].Value。但是,只有在匹配时才访问该值,否则您将收到异常(请参阅m.Success我的演示片段中的部分)。

请参阅正则表达式演示

在此处输入图像描述


推荐阅读