也许问题很熟悉,但在这种情况下我需要解释。
我们假设我有一个名为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]
分隔符之间添加一个字符串。
怎么做?使用正则表达式?
感谢您的耐心......
答案 0 :(得分:2)
您可以使用相同的solution found in this answer
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);
}
答案 1 :(得分:1)
int start = foo.IndexOf("[sql]") + 5;
var sql = foo.SubString(start, foo.IndexOf("[/sql]") - start - 5);
答案 2 :(得分:0)
如果只有一个出现,你可以使用常见的字符串运算符:
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);
答案 3 :(得分:0)
一个老问题,但这通常会出现在关于搜索分隔字符串的Google查询中。
我找到了一个很好的解决方案Regex: C# extract text within double quotes
在" Bart""回答。这是基于Linq的解决方案。您使用分隔符作为拆分字符拆分字符串。然后你保留所有奇数条目。
var stringArray = str.Split('"').Where((item, index) => index % 2 != 0);
就我而言,我一直在寻找以美元符号划分的字符串,' $'。示例:$ WantThisString $。像冠军一样工作。谢谢巴特!