- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
private static List<string> GetNewContents(string input) {
List<int> tablesIndex = new List<int>();
string file = input;
int oldInd = 0;
while (file.IndexOf("<table") != -1) {
int ind = file.IndexOf("<table");
tablesIndex.Add(ind + oldInd);
oldInd += ind;
file = file.Substring(ind + 1);
}
List<string> pIngs = new List<string>();
for (int i = 0; i < tablesIndex.Count; i++) {
file = input.Substring(0, tablesIndex[i]);
if (file.LastIndexOf("<p") != -1) {
string res = "";
while (res == "") {
string result = string.Empty;
MatchCollection mc_col = Regex.Matches(file.Substring(file.LastIndexOf("<p")), "(?<=^|>)[^><]+?(?=<|$)", RegexOptions.IgnoreCase);
foreach (Match mat in mc_col) {
result = result + mat.Value.Replace(">", String.Empty).Replace("\n", string.Empty).Replace("\r", string.Empty).Replace(" ", " ");
}
res = result.Trim();
if (res != "")
pIngs.Add(file.Substring(file.LastIndexOf("<p")));
else {
file = file.Substring(0, file.LastIndexOf("<p") - 1);
if (file.LastIndexOf("<p") == -1) {
pIngs.Add(" ");
break;
}
}
}
} else {
pIngs.Add(" ");
}
}
List<string> titles = new List<string>();
for (int i = 0; i < pIngs.Count; i++) {
string result = string.Empty;
MatchCollection mc_col = Regex.Matches(pIngs[i], "(?<=^|>)[^><]+?(?=<|$)", RegexOptions.IgnoreCase);
//string[] sss = tdValue.Split("<".ToCharArray()[0]);
foreach (Match mat in mc_col) {
result = result + mat.Value.Replace(">", String.Empty).Replace("\n", string.Empty).Replace("\r", string.Empty).Replace(" ", " ");
}
titles.Add(result);
}
return titles;
}
может я чего не понимаю, но он точно в своем уме был, когда так html таблицы парсил?
Желание парсить его регулярками пахнет очень большим говном
Бизнес задача, требующая выпаршивать данные из HTML таблицы пахнет говном еще больше.
Освежитель воздуха "ёлочка" можно взять тут: https://html-agility-pack.net/select-single-node
Но всё равно будет пахнуть так, словно в лесу кто-то насрал
https://en.wikipedia.org/wiki/Chomsky_hierarchy#The_hierarchy
нажми на слово "Regular", и прочитай статью
И типа, для каждого языка нужен свой автомат, который может с ним работать, поэтому нельзя парсить HTML регулярками, т.к. <div>[^>]*<\div> ищет подстроку в отрыве от контекста, который в HTML важен?
Это не значит, что регулярные выражения можно использовать для грамматического разбора русского языка
И она выполнит свою задачу.
И эти люди нас потом ругают за речь, засранную англицизмами...
--я фильм смотрел смотрел, там еще такие противные треноги были
- Ы?
В общем хуиная получилась регулярка, именно поэтому я за «построение синтаксического дерева для анализа естественного языка», что бы это ни значило.
В любом случае это не регулярная грамматика.
И потому парсить ее обычным конечным автоматом (который и создают регулярки) будет затруднительно:)
теперь не просто забанят, но и инью посадят еще