0

質問はおなじみかもしれませんが、この場合は説明が必要です。

というファイルがあるとしましょうtest.txt。次の内容が含まれています。

An example of this line. The line has more than 20 characters.
[sql]SELECT * FROM LINE WHERE aLine = '123'[/sql]
blah blah blah blah...

または何について

An example of this line. The line has more than 20 characters.
[sql]SELECT * FROM 
       LINE 
     WHERE aLine = '123'[/sql]
blah blah blah blah...

[sql] SELECT * FROM ME[/sql]

 etc..er
[sql]
   SELECT * FROM ALL
 [/sql]

[sql][/sql]区切り文字の間の文字列を取得したい。

どうやってするか ?正規表現で?

忍耐をありがとう...

4

4 に答える 4

2

この回答にあるのと同じ解決策を使用できます

string ExtractString(string s, string tag) {
     // You should check for errors in real-world code, omitted for brevity
     var startTag = "[" + tag + "]";
     int startIndex = s.IndexOf(startTag) + startTag.Length;
     int endIndex = s.IndexOf("[/" + tag + "]", startIndex);
     return s.Substring(startIndex, endIndex - startIndex);
}
于 2012-07-03T14:20:21.503 に答える
1
int start = foo.IndexOf("[sql]") + 5;

var sql = foo.SubString(start, foo.IndexOf("[/sql]") - start - 5);
于 2012-07-03T14:19:57.290 に答える
0

出現が 1 つしかない場合は、一般的な文字列演算子を使用できます。

string str = File.ReadAllText(@"c:\test.txt");

int start = str.IndexOf("[sql]");
int end = str.IndexOf("[/sql]");
string sql = str.Substring(start + 5, end - start - 5);
于 2012-07-03T14:22:10.480 に答える