私はこの文字列を持っています:
「ローカル ホスト上のネットワーク アダプタ 'Realtek PCIe GBE Family Controller'」
"'" の間の文字列のみを返す最良の方法は何ですか? (Realtek PCIe GBE ファミリ コントローラ)
私はこの文字列を持っています:
「ローカル ホスト上のネットワーク アダプタ 'Realtek PCIe GBE Family Controller'」
"'" の間の文字列のみを返す最良の方法は何ですか? (Realtek PCIe GBE ファミリ コントローラ)
次のように、正規表現を使用できます。
var s = "hello 'world' hehe";
var m = Regex.Match(s, "'([^']*)'");
string res = null;
if (m.Success) {
res = m.Groups[1].ToString();
}
Console.WriteLine(res);
解決策の鍵は、次の正規表現です。
'([^']*)'
一重引用符が見つかったときに一致を開始し、終了引用符が見つかるまで続行し、その間のすべてをキャプチャします。Regex
キャプチャされたグループは、 APIを介して取得されます。定義するキャプチャ グループは index で始まることに注意してください1
。インデックス 0 は、「一致全体」を意味するために予約されています。
ideoneのデモをご覧ください。
正規表現に慣れている場合は、次のようなパターンを使用できます。
/'[^']*'/
一重引用符の間のすべてをキャプチャする
メソッドを使用してSubstring()
それを切り刻むことができます。
tempStr = str.Substring(str.IndexOf("'")+1);
yourStr = tempStr.SubString(0, tempStr.IndexOf("'"));