我有一个我猜是逻辑问题。我正在使用 C# 进行编码,但欢迎使用一般的伪代码解决方案。
我有这个文本文件,其中包含例如这个文本:
blah "hello john"
blah 'the code is "flower" '
blah "good night"
我想遍历双引号并对它们做一些事情,但我想忽略单引号中包含的双引号。我得到了开始双引号和结束双引号的位置(string data
包含文本文件的内容):
C#
// Start searching from beginning
int quotestart = 0, quoteend = 0;
while (data.IndexOf('"', quotestart) != -1)
{
// Get opening double quote
quotestart = data.IndexOf('"', quotestart);
// Get ending double quote
quoteend = data.IndexOf('"', quotestart + 1);
string sub = data.Substring(quotestart + 1, quoteend - quotestart - 1);
Console.WriteLine(sub);
// Set the start position for the next round
quotestart = quoteend + 1;
}
使用我的代码,输出将是:
hello john
flower
good night
因为“花”在单引号内,我希望我的输出是:
hello john
good night
编辑
我目前正在研究一种方法,首先用“A”填充单引号之间的所有数据。这样,当我遍历双引号时,单引号之间的任何数据都会被忽略。不确定这是否是正确的方法。