Matlab正则表达式查询

亚历克·杰弗里(Alec Jeffery)

对正则表达式非常陌生,还没有找到描述性的解释来缩小我对正则表达式的理解,从而无法找到解决方案。

我使用了一个脚本,该脚本从Yahoo财务中抓取了html脚本,以获取财务期权表数据。雅虎最近更改了他们的HTML代码,旧算法不再起作用。旧的表达如下:

Main_Pattern = '.*?</table><table[^>]*>(.*?)</table';
Tables = regexp(urlText, Main_Pattern, 'tokens');

Tables用于返回数据,它不再一样。对HTML进行HTML检查后,我发现数据不再位于中<table>,而是位于<tbody>...

我的问题是“Main_Pattern正则表达式对外行而言意味着什么?” 我试图弄清楚如何修改适用于当前HTML的表达式。

特洛伊·哈斯金

我同意@Marcin的观点,并且通过使用和利用所选工具的参考可以最好地学习正则表达式,但我将尽力弄清它的作用。

  1. .*?</table>:匹配不超过第一个</table>文字的任何内容(由于,这是一个惰性表达式?)。

  2. <table:匹配此文字。

  3. [^>]*>:尽可能匹配不是><table字面量到>满足表达式其余部分的a的最后一次出现(这是Greedy表达式,因为?后面没有*)之间的匹配

  4. (.*?)</table:匹配并捕获>从上一部分到</table文字之间的所有内容;捕获的内容可以使用的'tokens'选项进行检索regexp(您也可以使用该选项获取匹配的整个字符串'match')。

当我将它分解成几部分时,我想强调一下,整个表达式本身就是一个整体,这就是为什么某些部分引用前面的部分的原因。

有关上述内容的详细说明,请参见MATLAB文档的“运算符和字符”部分。



将来,更健壮的选择可能是使用MATLABxmlread和DOM对象遍历表节点。我确实知道这是另一个需要学习的API,但将来可能会更易于维护。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Kibana中的正则表达式查询语法示例

来自分类Dev

如何查询Mongoid正则表达式字段?

来自分类Dev

使用正则表达式访问UPDATE查询

来自分类Dev

Java正则表达式模式查询

来自分类Dev

MongoDB使用正则表达式查询空格

来自分类Dev

正则表达式查询的顺序

来自分类Dev

正则表达式查询

来自分类Dev

正则表达式精确匹配Matlab

来自分类Dev

正则表达式帮助,防查询替换

来自分类Dev

Lucene中的正则表达式查询

来自分类Dev

具有正则表达式的密码查询

来自分类Dev

Django:查询中的Sqlite和正则表达式

来自分类Dev

正则表达式MATLAB中的nul字节

来自分类Dev

用正则表达式查询集合

来自分类Dev

MATLAB中的动态正则表达式

来自分类Dev

正则表达式SPARQL查询

来自分类Dev

Matlab:正则表达式用法

来自分类Dev

带有SQL查询的正则表达式

来自分类Dev

正则表达式从插入查询中提取值

来自分类Dev

用正则表达式Matlab读取

来自分类Dev

MATLAB中的动态正则表达式

来自分类Dev

正则表达式SPARQL查询

来自分类Dev

将PCRE正则表达式转换为mysql查询正则表达式

来自分类Dev

Powershell 正则表达式查询

来自分类Dev

正则表达式查询,描述

来自分类Dev

grep 正则表达式查询

来自分类Dev

短语查询中的 ElasticSearch 正则表达式查询

来自分类Dev

正则表达式 splunk 查询

来自分类Dev

matlab 开关 + 正则表达式