c#正则表达式,单引号之间的字符串

本文关键字:字符串 之间 单引号 正则表达式 | 更新日期: 2023-09-27 17:50:15

string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";

我想使用正则表达式获得'引号之间的文本。

谁能?

c#正则表达式,单引号之间的字符串

应该这样做:

string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Match match = Regex.Match(val, @"'([^']*)");
if (match.Success)
{
    string yourValue = match.Groups[1].Value;
    Console.WriteLine(yourValue);
}

表达式'([^']*):

说明
 '    -> find a single quotation mark
 (    -> start a matching group
 [^'] -> match any character that is not a single quotation mark
 *    -> ...zero or more times
 )    -> end the matching group

您正在寻找使用正则表达式匹配字符串中的GUID。

我猜这就是你想要的!
public static Regex regex = new Regex(
  "(''{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-"+
  "([0-9a-fA-F]){4}-([0-9a-fA-F]){12}''}{0,1})",RegexOptions.CultureInvariant|RegexOptions.Compiled);
Match m = regex.Match(lineData);
if (m.Succes)
{
...
}

这将提取一行中第一个最后一个单引号之间的文本:

string input = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Regex regName = new Regex("'(.*)'");
Match match = regName.Match(input);
if (match.Success)
{
    string result = match.Groups[1].Value;
    //do something with the result
}

你可以使用正面向前看和向后看,

string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Match match = Regex.Match(val, @"(?<=')[^']*(?=')");
if (match.Success)
{
    string yourValue = match.Groups[0].Value;
    Console.WriteLine(yourValue);
}