Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >改进regex语句,使其尽可能高效

改进regex语句,使其尽可能高效
EN

Stack Overflow用户
提问于 2010-12-22 11:41:33
回答 4查看 125关注 0票数 2

我有一个PHP程序,在某个时候,需要分析大量的HTML+javascript文本来解析信息。我想要解析的东西需要分为两部分。

  1. 分离所有"HTML goups“以进行解析
  2. 解析每个HTML组以获取所需的信息。

在第一个解析中,它需要找到:

代码语言:javascript
运行
AI代码解释
复制
<div id="myHome"

然后开始捕捉那个标签。那就停止捕捉之前

代码语言:javascript
运行
AI代码解释
复制
<span id="nReaders"

捕捉这个标签后面的号码然后停止。

在第二个解析中,使用捕获编号1 (0有整件事情,2有数字)从前面进行的解析,然后查找。

我已经有代码可以这么做了。有什么方法可以改进这一点,使机器更容易解析吗?

代码语言:javascript
运行
AI代码解释
复制
preg_match_all('%<div id="myHome"[^>]>(.*?)<span id="nReaders[^>]>([0-9]+)<"%msi', $data, $results, PREG_SET_ORDER);
foreach($results AS $result){
    preg_match_all('%<div class="myplacement".*?[.]php[?]((?:next|before))=([0-9]+).*?<tbody.*?<td[^>]>.*?[0-9]+"%msi', $result[1], $mydata, PREG_SET_ORDER);
//takes care of the data and finish the program

注意:我需要这个免费软件程序,所以它必须尽可能通用,如果可能的话,不要使用php扩展。

补充:我在这里省略了一些部分,因为我没想到会有这样的答案。还需要在文档中的一个标记中解析文本。它可能是第六、第七或第八标记,但我知道它是在某个标签之后。我检查的解析器()确实可以找到脚本标记。现在怎么办?有多个标签具有相同的类。我想要所有的。但我只想要一份课程清单……在哪里可以找到DOM解析器的指令、演示和限制(就像http://simplehtmldom.sourceforge.net/中的那样)?我需要的东西,将工作,至少,大量的免费服务器。还有一件事。我如何解析这个部分:"php?=(0-9+)“和那些HTML解析器?

EN

回答 4

Stack Overflow用户

发布于 2010-12-22 11:47:59

如果您关心的是效率(甚至是准确性),不要尝试使用regex解析HTML

您应该使用解析器,例如PHP的DOM

票数 3
EN

Stack Overflow用户

发布于 2010-12-22 11:47:25

如前所述,regex并不适合这样做。你最好用这样的方法:

健壮成熟的PHP HTML解析器

票数 1
EN

Stack Overflow用户

发布于 2010-12-22 12:35:47

效率并不重要,如果你的结果是不正确的。使用regexes解析HTML将导致不正确的结果。使用解析器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4513038

复制
相关文章
【HTML5】HTML5 新增 input 表单 ( 邮箱输入表单 | 网址输入表单 | 日期输入表单 | 时间输入表单 | 电话输入表单 | 搜索栏输入表单 | 颜色选择器输入表单 )
一、HTML5 新增 input 表单 ---- HTML5 新增 input 表单 : 邮箱输入表单 : 必须输入邮箱 , 如果输入格式错误 , 提交时会在对话框中报错 ; <input type="email" /> URL 输入表单 : 只能输入网址 , 格式错误会在对话框中报错 ; <input type="url" /> 日期输入表单 : 右侧的下拉菜单选择日期 ; 如果在手机中打开 , 会弹出手机中自带的日期选择对话框 ; <input type="date" /> 时间输入表
韩曙亮
2023/04/24
3.4K0
【HTML5】HTML5 新增 input 表单 ( 邮箱输入表单 | 网址输入表单 | 日期输入表单 | 时间输入表单 | 电话输入表单 | 搜索栏输入表单 | 颜色选择器输入表单 )
HTML 表单和输入
表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。
用户8442333
2021/08/21
2K0
在HTML中如何使用CSS?
一、前言 在 HTML 中使用 CSS,包括内联式、内嵌式、链接式和导入式。 二、分类 2.1 内联式 内联式是所有样式应用方式中最为直接的一种,它通过对 HTML 标记使用 属性,将 CSS 代码直接写在其中。 内联式是最简单、直接的 CSS 使用方法,但它的针对性很明显,只能作用于当前标记,造成代码冗余,维护比较困难。 2.2 内嵌式 内嵌式与内联式使用方法不同,它将 CSS 代码写在 标记之间,并需要采用 标记进行声明。 使用内嵌式 CSS 用法时 CSS 代码将被集中放在 标记中,这样方便查
企鹅号小编
2018/02/01
8.6K0
AngularJS中使用表单输入的应用设计
在Angular中使用表单元素非常方便。正如我们在前面几个例子中看到的,你可以使用ng-model属性把元素绑定到你的模型属性上。这一机制对于所有标准的表单元素都可以起作用,例如文本框、单选按钮、复选
企鹅号小编
2018/01/08
2.1K0
AngularJS中使用表单输入的应用设计
php将表单中数据传入到数据库
1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <title>无标题文档</title> 5 </head> 6 7 <body> 8 <form action="" method="post">//创建表单 9 姓名 10 <input type="text" name="str"> 11 <input type="submit" name="submit
码缘
2019/09/11
2.2K0
HTML中的表单
表单的用途很多。表单的用途主要用来收集客户端提供的相关信息,是网页具有相互交互的功能,是用户与网站实现交互的重要手段。当用户填写完信息后做提交操作,将表单的信息从客户端的浏览器传送到服务器上,经过服务器处理后,再将用户所需要的信息传送回客户端的浏览器上。在网页中,最常见的表单形式有文本框,密码文本框,单选按钮,复选框,按钮(普通,提交,重置),文件域或图像域,文本域和列表(菜单)。
小末快跑
2019/07/03
5.4K0
如何使用JS将 HTML 页面或表单转化为 PDF文档
PDF 是一种流行的文件格式,我们用来在不同平台和设备上呈现和共享具有固定布局的文档。
前端达人
2023/08/31
5920
如何使用JS将 HTML 页面或表单转化为 PDF文档
通过Bootstrap 输入框组,表单控件的使用案例
Bootstrap 支持的另一个特性,输入框组。输入框组扩展自 表单控件。使用输入框组,您可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮。
好派笔记
2021/09/18
2K0
layui表单提交参数如何传递_HTML中form表单数据提交方式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
3.3K0
如何是HTML页面中的表单居中显示[通俗易懂]
在进行前端页面设置的时候,发现写完的form表单始终无法居中显示,详细如图1所示:
全栈程序员站长
2022/09/20
7.8K0
如何是HTML页面中的表单居中显示[通俗易懂]
如何创建HTML表单?html表单代码怎么写[通俗易懂]
html表单代码是什么?如何创建HTML表单?这些对于新手会感到陌生,下面我们为你总结一下html表单代码怎么写?以及html表单的创建?
全栈程序员站长
2022/09/22
6.7K0
数据是如何输入到神经网络中
我们在做深度学习任务的时候,总会有这样的困惑? 比如我们做的CV项目,那么我们采集的图像数据集是如何输入到神经网络中去的呢?图像中的特征又是如何提取的呢?
杨鹏伟
2022/07/17
7540
数据是如何输入到神经网络中
如何使用 Tailwind CSS 设计高级自定义动画
Tailwind CSS,一款流行的实用型CSS框架,提供了一套强大的工具,可以轻松地创建令人惊艳的动画效果。
前端达人
2023/08/31
1.8K0
如何使用 Tailwind CSS 设计高级自定义动画
如何仅使用 JavaScript 将任何 HTML 页面或表单转化为 PDF文件
PDF 是一种流行的文件格式,我们用来在不同平台和设备上呈现和共享具有固定布局的文档。
winty
2023/08/23
1.6K0
如何仅使用 JavaScript 将任何 HTML 页面或表单转化为 PDF文件
将pandas数据显示到现有的flask html表中
2 pandas读写数据库 在python连接好数据库后,pandas可以利用read_sql()方法将数据读入DataFrame。这里可以看一下代码。
赵云龙龙
2020/12/15
4.3K0
将pandas数据显示到现有的flask html表中
如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候,
全栈程序员站长
2022/07/05
4.4K0
如何使用免费控件将Word表格中的数据导入到Excel中
6.HTML输入表单标签元素介绍
描述: 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入内容,其包含 文本框、文本域(textarea)、按钮、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等元素都要放在form标签里面或者进行form的id值的调用,否则提交的数据到不了后端。
全栈工程师修炼指南
2023/03/21
4.7K0
表单提交后端如何接收数据_html怎么接收表单提交的内容
然而,我们可以采取引入模块的做法来简化原生代码,并且可以实现文件上传的: 首先,我们需要在cmd或者powershell中安装这个模块:
全栈程序员站长
2022/11/08
5.9K0
表单提交后端如何接收数据_html怎么接收表单提交的内容
点击加载更多

相似问题

将HTML表单数据发布到Google电子表格

10

如何使用Google电子表格作为后端创建HTML数据输入表单

45

如何将数据从google表单输入到

12

将HTML表单发布到Google Docs电子表格

12

如何通过java将数据发布到html表单?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文