gpt4 book ai didi

c# - 需要 RegEx 或其他方式来分隔包含转义引号的引用标记

转载 作者:行者123 更新时间:2023-11-30 14:27:02 24 4
gpt4 key购买 nike

基本上,我的任务是解析这个命令行:

-p "This is a string ""with quotes""" d:\1.txt "d:\some folder\1.out"

我需要的是将这个字符串拆分成:

  1. -p
  2. 这是一个“带引号”的字符串
  3. d:\1.txt
  4. d:\一些文件夹\1.out

我进行了搜索(是的,我确实进行了搜索),但我发现的所有示例要么没有包含转义引号,要么使用\"作为转义符号。

最佳答案

我会改用真正的 csv-parser,例如 .NET 中唯一可用的 csv-parser:

string str = "-p \"This is a string \"\"with quotes\"\"\" d:\\1.txt \"d:\\some folder\\1.out\"";
var allLineFields = new List<string[]>();
using (var parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(new StringReader(str)))
{
parser.Delimiters = new string[] { " " };
parser.HasFieldsEnclosedInQuotes = true; // <--- !!!
string[] lineFields;
while ((lineFields = parser.ReadFields()) != null)
{
allLineFields.Add(lineFields);
}
}

对于您的示例字符串,该列表包含一个带有您的四个标记的 string[]:

-p
This is a string "with quotes"
d:\1.txt
d:\some folder\1.out

关于c# - 需要 RegEx 或其他方式来分隔包含转义引号的引用标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com