我想在此字符串中捕获初始目录的值:
“blah blah Initial Catalog = MyCat'”
我希望结果为: MyCat
在等号之前和之后可能存在或不存在空格,并且在单引号之前可能存在或不存在空格。
尝试了这个和其他各种但是没有去:
/Initial Catalog\s?=\s?.*\s?\'/
使用.Net。
答案 0 :(得分:2)
您需要在要匹配的字符串部分周围添加括号:
/Initial Catalog\s*=\s*(.*?)\s*'/
此外,您希望在'
之前排除尽可能多的空格,因此您需要\s*
而不是\s?
。 .*?
表示字符串的提取部分不占用这些空格,因为它现在是懒惰的。
答案 1 :(得分: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
}
答案 2 :(得分:0)
Regex rgx = new Regex(@"=\s*([A-z]+)\s*'");
String result = rgx.Match(text).Groups[1].Value;