この文字列で初期カタログの値を取得したいと思います。
"何とか何とか初期カタログ=MyCat'"
結果を次のようにしたいと思います:MyCat
等号の前後にスペースがある場合とない場合があり、一重引用符の前にスペースがある場合とない場合があります。
これと他のさまざまなものを試しましたが、行きませんでした:
/Initial Catalog\s?=\s?.*\s?\'/
.Netの使用。
この文字列で初期カタログの値を取得したいと思います。
"何とか何とか初期カタログ=MyCat'"
結果を次のようにしたいと思います:MyCat
等号の前後にスペースがある場合とない場合があり、一重引用符の前にスペースがある場合とない場合があります。
これと他のさまざまなものを試しましたが、行きませんでした:
/Initial Catalog\s?=\s?.*\s?\'/
.Netの使用。
一致させたい文字列の部分を括弧で囲む必要があります。
/Initial Catalog\s*=\s*(.*?)\s*'/
また、の前にできるだけ多くのスペースを除外したいので、ではなく'
が必要です。これは、文字列の抽出された部分がレイジーになっているため、これらのスペースを使用しないことを意味します。\s*
\s?
.*?
これは素晴らしい正規表現です
= *(.*?) *'
アイデアを使用し、必要に応じて\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
}
Regex rgx = new Regex(@"=\s*([A-z]+)\s*'");
String result = rgx.Match(text).Groups[1].Value;