我正在寻找一个快速的库/类来使用如下表达式解析纯文本:
文字是:<b>Name:</b>John<br><i>Age</i>32<br>
模式是:{*}Name:</b>{%}<br>{*}Age</i>{%}<br>
它会为我找到两个值:John
和32
. 目的是在不涉及重型工具的情况下解析简单的 HTML 网页。它不应该在内部使用字符串操作或正则表达式,但可能通过 char 解析来执行 char。
我正在寻找一个快速的库/类来使用如下表达式解析纯文本:
文字是:<b>Name:</b>John<br><i>Age</i>32<br>
模式是:{*}Name:</b>{%}<br>{*}Age</i>{%}<br>
它会为我找到两个值:John
和32
. 目的是在不涉及重型工具的情况下解析简单的 HTML 网页。它不应该在内部使用字符串操作或正则表达式,但可能通过 char 解析来执行 char。
正则表达式替换会起作用。只需让它像“John%32”一样将两个值一起返回,然后拆分响应以获取两个单独的值。
在这里手动实现逐个字符的解析确实没有任何优势,因为这些问题已经基本上解决了这些类型的问题。
开发逐个字符的方法最终可能等同于手动实现上述两个选项之一,这不是一件容易实现的事情。
由于您似乎是在要求用户指定您想要的 HTML 内容,所以在这里使用正则表达式可能没问题(为什么您对它们有反感?)。它不再是 HTML 解析,只是简单的文本匹配,这就是正则表达式的设计目的。
这是一个例子:
$match =~ s/{\*}/.*?/g;
$match =~ s/{%}/(.*?)/g;
$html =~ /$match/;
这将在您的捕获组中留下您需要的东西。