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 に答える