遇到纯字符串就组成一个数组
变成
数组1=
2023070600000001600
code=“0000”
ID=“kik”
Text=“Contine”
数组2=
20230706000000011400
message=“00000IX”
ID=“joke”
数组3=
20230706000000021700
Flag=“flase”
数组4=
20230706000000032500
Flag=“true”
数组5=
20230706000000041600
userID=“”
password=“”
数组6=
20230706000000043700
Password=“”
2023070600000001600
code=“0000”
ID=“kik”
Text=“Contine”
20230706000000011400
message=“00000IX”
ID=“joke”
20230706000000021700
Flag=“flase”
20230706000000032500
Flag=“true”
20230706000000041600
userID=“”
password=“”
20230706000000043700
Password=“”
string[] datStr = File.ReadAllLines(localFileName);//largeBytes
var lists = new List<List<string>>();//lists
Regex regNum = new Regex("^[0-9]");//marker
var tmpLst = new List<string>();//tmpLst
foreach (var datstr in datStr)
{
if (Char.IsDigit(datstr[0]))
{
lists.Add(new List<string>(new List<string>(datstr);));
tmpLst = new List<string>();
lists.Add(tmpLst);
}
else
{
tmpLst.Add(datstr);
}
}
lists.Add(tmpLst);
using System;
using System.Text.RegularExpressions;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
string s1 = @"2023070600000001600
code=“0000”
ID=“kik”
Text=“Contine”
20230706000000011400
message=“00000IX”
ID=“joke”
20230706000000021700
Flag=“flase”
20230706000000032500
Flag=“true”
20230706000000041600
userID=“”
password=“”
20230706000000043700
Password=“”";
string pattern = @"(?is)\d{20}.+?(?=\d{20}|$)";
MatchCollection matches = Regex.Matches(s1, pattern);
string[] result = new string[matches.Count];
for (int i = 0; i < matches.Count; i++)
{
result[i] = matches[i].Value;
}
foreach (string match in result)
{
Console.WriteLine("找到" + match + "\n");
}
}
}
}
找到20230706000000011400
message=“00000IX”
ID=“joke”
找到20230706000000021700
Flag=“flase”
找到20230706000000032500
Flag=“true”
找到20230706000000041600
userID=“”
password=“”
找到20230706000000043700
Password=“”
【以下回答由 GPT 生成】
string input = @"<p>遇到纯字符串就组成一个数组<br />变成<br />数组1=<br />2023070600000001600<br />code=“0000”<br />ID=“kik”<br />Text=“Contine”</p>
<p>数组2=<br />20230706000000011400<br />message=“00000IX”<br />ID=“joke”</p>
<p>数组3=<br />20230706000000021700<br />Flag=“flase”</p>
<p>数组4=<br />20230706000000032500<br />Flag=“true”</p>
<p>数组5=<br />20230706000000041600<br />userID=“”<br />password=“”</p>
<p>数组6=<br />20230706000000043700<br />Password=“”</p>
<pre><code class=""language-javascript""><span class=""hljs-number"">2023070600000001600</span>
<span class=""hljs-attribute"">code</span><span class=""hljs-operator"">=</span>“<span class=""hljs-number"">0000</span>”
<span class=""hljs-attribute"">ID</span><span class=""hljs-operator"">=</span>“kik”
<span class=""hljs-attribute"">Text</span><span class=""hljs-operator"">=</span>“Contine”
<span class=""hljs-number"">20230706000000011400</span>
<span class=""hljs-attribute"">message</span><span class=""hljs-operator"">=</span>“<span class=""hljs-number"">00000</span>IX”
<span class=""hljs-attribute"">ID</span><span class=""hljs-operator"">=</span>“joke”
<span class=""hljs-number"">20230706000000021700</span>
<span class=""hljs-attribute"">Flag</span><span class=""hljs-operator"">=</span>“flase”
<span class=""hljs-number"">20230706000000032500</span>
<span class=""hljs-attribute"">Flag</span><span class=""hljs-operator"">=</span>“true”
<span class=""hljs-number"">20230706000000041600</span>
<span class=""hljs-attribute"">userID</span><span class=""hljs-operator"">=</span>“”
<span class=""hljs-attribute"">password</span><span class=""hljs-operator"">=</span>“”
<span class=""hljs-number"">20230706000000043700</span>
<span class=""hljs-attribute"">Password</span><span class=""hljs-operator"">=</span>“”
</code></pre>";
List<List<string>> result = new List<List<string>>();
string[] paragraphs = input.Split(new string[] { "<p>", "</p>", "<br />", "<pre><code class=\"language-javascript\">", "</code></pre>" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string paragraph in paragraphs)
{
List<string> array = new List<string>();
string[] lines = paragraph.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in lines)
{
if (!line.Contains("<span") && !line.Contains("</span>") && !line.Contains("<code class=\"language-javascript\">"))
{
array.Add(line.Replace("=", "=").Replace("“", "").Replace("”", "").Trim());
}
}
if (array.Count > 0)
{
result.Add(array);
}
}
result;
该代码通过以下步骤将动态字符串拆分为动态数组:
首先,我们将输入字符串分割成段落,使用 <p>
, </p>
, <br />
和 <pre><code class="language-javascript"></code></pre>
作为分割符。这样我们得到了一个段落的数组。
接下来,我们遍历每个段落,并将其拆分成行。这样我们得到了每个段落中的行数组。
然后,我们遍历每个行,并检查是否不包含 <span
, </span>
, <code class="language-javascript"></code>
。如果是的话,我们把每一行加入到某个段落对应的动态数组中。
最后,我们检查一个动态数组是否不为空,如果不为空,则将其加入到结果列表中。
最后,我们获得了一个嵌套数组,每个子数组都对应一个动态字符串的拆分结果。