繁体   English   中英

我如何使用C#中的regEx从此字符串中获取值来解释regex?

[英]How can I grab a value from this string using regEx in c# explain the regex?

我有一个字符串,我需要将其解析为一个值...

var msg = "Sometext can't do this. Blah blah blah Version id: 'xxx'";

如何使用正则表达式并获取最后两个单引号之间的文本? xxx请注意{cantt}中的第一个单引号我要查找的值将始终在单引号的最后一个引号之间。 对正则表达式的简短说明也很棒。

非常感谢您的帮助,提示和示例。

这是最终的正则表达式

    (?<=')[^']*(?='$)

我使用的一般模式是

    (?<=prefix)find(?=suffix)

它找到位于前缀和后缀之间的模式。 我们想要找到的是

    [^']*

这意味着除了单引号( ' )重复零次或更多次。

最后,我们寻找'$结尾处,而不仅仅是' 这意味着单引号必须在行尾。

你可以试试这个

'\w*'

\\ w-简单易懂,查找字母数字字符,*使它查找任意数量的重复,并且用单引号引起来意味着查找用单引号引起来的任意数量的字母数字字符。

在那个特定的string ...

@"'\w+'"

...将匹配"'xxx'" ,但是如果您知道string将始终以"Version id: 'xxx'"结尾,并且您想考虑可能用单引号引起来的其他文本,则可以使用此字符串。 ..

@"Version id: '(?<versionId>\w+)'$"

...然后使用此名称检索版本ID ...

Match match = Regex.Match(msg, @"Version id: '(?<versionId>\w+)'$");

if (match.Success)
{
    string versionId = match.Groups["versionId"].Value;

    // Perform further processing on versionId...
}

正则表达式分解如下:

暂无
暂无

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

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