我正在尝试获取一个正则表达式,其中我可以选择表的索引为3的行中索引为1的单元格。我不确定我如何才能做到这一点,特别是在只选择特定细胞的情况下。我需要假设我不知道行或单元格将包含什么。
表格是HTML格式的。
有没有人能给我一些建议呢?
这必须是普通的javascript RegEx格式,我不能使用jQuery。
发布于 2014-06-06 02:19:01
这将匹配每个单元格中的所有文本。我现在正在处理第n个单元。在javascript中不起作用,因为javascript不支持后视。我知道你想用javascript来做这件事,但那是完全不可能的。您不能在不使用lookbehind的情况下执行此正则表达式。
假设表格如下:
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>匹配每个单元格中的文本的正则表达式为:
(?<=<td>).*?(?=<)
我是这样想的:
(?s)((?<=(<\/td>){cell index}+<td>).*?(?=<.*))
但是,至少在Sublime的搜索工具中,这种后视分析是不正确的。
我们可以在后视中的捕获组上放置一个数字来指定单元格编号,然后对for行号重复该过程。有什么建议吗?
更多的来电。
发布于 2021-07-16 01:34:30
我知道这是一个老帖子,但我也有同样的问题,这是第一个谷歌搜索结果。
下面是我想出来的(其中n是您想要匹配的第n个单元格):
/(?:<td>(?:(?!<\/td>).)*<\/td>){n-1}<td>(.*?)<\/td>/gi对于上面@devon给出的示例:
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>如果你想匹配第三个单元格(50),你可以使用以下命令:
(?:<td>(?:(?!<\/td>).)*<\/td>){2}<td>(.*?)<\/td>https://stackoverflow.com/questions/24066455
复制相似问题