私は文字列を持っています
"Hello i want to go."
私のコードは与えますが、間に"want to go."
文字列が必要です。どうすればこれを取得できますか? 私のコードは以下の通りです。" i "
" to "
string[] words = Regex.Split("Hello i want to go.", " i ");
string respons = words[1];
私は文字列を持っています
"Hello i want to go."
私のコードは与えますが、間に"want to go."
文字列が必要です。どうすればこれを取得できますか? 私のコードは以下の通りです。" i "
" to "
string[] words = Regex.Split("Hello i want to go.", " i ");
string respons = words[1];
string input = "Hello i want to go.";
Regex regex = new Regex(@".*\s[Ii]{1}\s(\w*)\sto\s.*");
Match match = regex.Match(input);
string result = string.Empty;
if (match.Success)
{
result = match.Groups[1].Value;
}
この正規表現は、「i」(大文字と小文字を区別しない) と「to」の間の任意の「単語」と一致します。
編集: コメントで提案されているように ...to.* => to\s.* に変更しました。
string input = "Hello I want to go.";
string result = input.Split(" ")[2];
「i」の後の単語が必要な場合は、次のようにします。
string result = input.Split(" i ")[1].Split(" ")[0];
正規表現とはどこにも書かれていません...
string result = input.Split.Skip(2).Take(1).First()
使用する
string s = "Hello i want to go.";
string[] words = s.split(' ');
string response = wor
string input = "Hello I want to go.";
string[] sentenceArray = input.Split(' ');
string required = sentenceArray[2];
1行の簡単なコードでそれを行うだけです
var word = "Hello i want to go.".Split(' ')[2];
//「欲しい」という単語を返す
「want」が出現するたびにインデックスを取得する正規表現を使用した例を次に示します。
string str = "Hello i want to go. Hello i want to go. Hello i want to go.";
Match match = Regex.Match(str, "want");
while(match.Success){
Console.WriteLine(string.Format("Index: {0}", match.Index));
match = match.NextMatch();
}
それは仕事です
public static string Between(this string src, string findfrom, string findto)
{
int start = src.IndexOf(findfrom);
int to = src.IndexOf(findto, start + findfrom.Length);
if (start < 0 || to < 0) return "";
string s = src.Substring(
start + findfrom.Length,
to - start - findfrom.Length);
return s;
}
そして、それは次のように呼び出すことができます
string respons = Between("Hello i want to go."," i "," to ");
戻るwant