0

我想在这个字符串中捕获初始目录的值:

“等等等等初始目录 = MyCat'”

我希望结果是:MyCat

等号前后可以有也可以不可以有空格,单引号之前可以有也可以不可以有空格。

尝试了这个和其他各种但没有去:

/Initial Catalog\s?=\s?.*\s?\'/

使用.Net。

4

3 回答 3

2

您需要在要匹配的字符串部分周围加上括号:

/Initial Catalog\s*=\s*(.*?)\s*'/

此外,您希望在 之前排除尽可能多的空格',因此您需要\s*而不是\s?. 这.*?意味着提取的字符串部分不占用这些空格,因为它现在是惰性的。

于 2012-06-05T21:25:18.567 回答
1

这是一个不错的正则表达式

= *(.*?) *'

使用这个想法并根据需要添加 \s 和更多文字文本。

在 C# 组 1 中将包含匹配项

string resultString = null;
try {
    Regex regexObj = new Regex("= *(.*?) *'");
    resultString = regexObj.Match(subjectString).Groups[1].Value;
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
于 2012-06-05T21:24:28.233 回答
0
Regex rgx = new Regex(@"=\s*([A-z]+)\s*'");
String result = rgx.Match(text).Groups[1].Value;
于 2012-06-05T21:29:22.407 回答