拆分字符串和数字并存储在键值对上
Split string and number and store on key-value pair
我正试图删除一堆类似的 HTML 页面,恕我直言,这些标签简直就是一场噩梦。
我发现使用
IList<IWebElement> all = driver.FindElements(By.TagName("p"));
取得了很好的效果。这是我可以使用它的不同字符串:
1 txt 2 txt txt txt, 3 txt txt.
4 txt
5 txt 6 txt
7 txt
"txt
txt
txt"
8 txt.
我基本上想将数字和文本分开以保持它们之间的关系。
本质上,每一行都是一个不同的字符串(这是一个不同的 p 元素),包括空字符串。
我能想到的最好方法是生成一个键值对,但我无法提取数字和文本并保留它们的关系。
我正在尝试使用 Split 方法来做到这一点
Regex.Split(input, pattern);
我认为在这些字符串上效果不佳。有什么想法吗?期望的结果将是一个列表,如:
1: [1, txt]
2: [2, txt txt txt,]
3: [3, txt.]
4: [4, txt]
5: [5, txt]
6: [6, txt]
7: [7, txt "txt txt txt"]
8: [8, txt.]
试试这个,
Dictionary<int, string> dict = new Dictionary<int, string>();
int key = -100; string value = "";
foreach(IWebElement element in all)
{
foreach (var str in element.Text.Split(' '))
{
int new_key;
if (int.TryParse(str.Trim(), out new_key))
{
if (value == "")
key = new_key;
else
{
dict[key] = value.Trim();
value = "";
key = new_key;
}
}
else
{
value += str + " ";
}
}
dict[key] = value.Trim();
}
我的代码确实假设文本中没有整数词,例如“1 txt txt txt 3 txt”,其中 3 是文本的一部分而不是键。只要有一个整数,这段代码就会假定它是字典的键。
我正试图删除一堆类似的 HTML 页面,恕我直言,这些标签简直就是一场噩梦。 我发现使用
IList<IWebElement> all = driver.FindElements(By.TagName("p"));
取得了很好的效果。这是我可以使用它的不同字符串:
1 txt 2 txt txt txt, 3 txt txt.
4 txt
5 txt 6 txt
7 txt
"txt
txt
txt"
8 txt.
我基本上想将数字和文本分开以保持它们之间的关系。 本质上,每一行都是一个不同的字符串(这是一个不同的 p 元素),包括空字符串。 我能想到的最好方法是生成一个键值对,但我无法提取数字和文本并保留它们的关系。 我正在尝试使用 Split 方法来做到这一点
Regex.Split(input, pattern);
我认为在这些字符串上效果不佳。有什么想法吗?期望的结果将是一个列表,如:
1: [1, txt]
2: [2, txt txt txt,]
3: [3, txt.]
4: [4, txt]
5: [5, txt]
6: [6, txt]
7: [7, txt "txt txt txt"]
8: [8, txt.]
试试这个,
Dictionary<int, string> dict = new Dictionary<int, string>();
int key = -100; string value = "";
foreach(IWebElement element in all)
{
foreach (var str in element.Text.Split(' '))
{
int new_key;
if (int.TryParse(str.Trim(), out new_key))
{
if (value == "")
key = new_key;
else
{
dict[key] = value.Trim();
value = "";
key = new_key;
}
}
else
{
value += str + " ";
}
}
dict[key] = value.Trim();
}
我的代码确实假设文本中没有整数词,例如“1 txt txt txt 3 txt”,其中 3 是文本的一部分而不是键。只要有一个整数,这段代码就会假定它是字典的键。