Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-最短匹配_Regex - Fatal编程技术网

Regex 正则表达式-最短匹配

Regex 正则表达式-最短匹配,regex,Regex,我需要通过正则表达式解析一个HTML字符串,得到键后是我需要提取的值 原始字符串示例: <TR><TD>VAL1</TD><TD>KEY1</TD></TR><TR><TD>VAL2</TD><TD>KEY2</TD></TR> 假设键是常量且值在更改,如何解决此问题 提前感谢,, 迈克尔使用 <TD>([^<]*)</TD&g

我需要通过正则表达式解析一个HTML字符串,得到键后是我需要提取的值

原始字符串示例:

<TR><TD>VAL1</TD><TD>KEY1</TD></TR><TR><TD>VAL2</TD><TD>KEY2</TD></TR>
假设键是常量且值在更改,如何解决此问题

提前感谢,, 迈克尔

使用

<TD>([^<]*)</TD><TD>KEY2</TD>
([^使用


([^我不知道您使用的是什么语言,但如果是PHP,我认为您最好使用它,而不是使用正则表达式解析它

这里有一种方法:

<?php

$html="<TR><TD>VAL1</TD><TD>KEY1</TD></TR><TR><TD>VAL2</TD><TD>KEY2</TD></TR>";

$doc = new DOMDocument();
$doc->loadHTML($html);

print_r($doc->getElementById(1)->tagName);

$output=array();
$n=0;
while ($val = $doc->getElementsByTagName('td')->item($n++)) {
  $key = $doc->getElementsByTagName('td')->item($n++);
  $output[$key->textContent]=$val->textContent;
}

print_r($output);

我不知道您使用的是什么语言,但如果是PHP,我认为您最好使用它,而不是使用正则表达式解析它

这里有一种方法:

<?php

$html="<TR><TD>VAL1</TD><TD>KEY1</TD></TR><TR><TD>VAL2</TD><TD>KEY2</TD></TR>";

$doc = new DOMDocument();
$doc->loadHTML($html);

print_r($doc->getElementById(1)->tagName);

$output=array();
$n=0;
while ($val = $doc->getElementsByTagName('td')->item($n++)) {
  $key = $doc->getElementsByTagName('td')->item($n++);
  $output[$key->textContent]=$val->textContent;
}

print_r($output);

你怎么知道他们要的是PHP?+1因为没有发布YAPPeR(“又一个伪解析正则表达式”)@Joey-说得好。我想我已经读了太多相同的问题。答案也相应地被编辑了。CodeGnome,对于如此琐碎的事情,顺便说一句,使用正则表达式是完全可以的。没有嵌套结构,绝对是你所期望的一种常规语言。见鬼,为什么不使用正则表达式?它们就是为了这个目的而存在的:)你怎么知道他们要的是PHP?+1因为没有发布YAPPeR(“又一个伪解析正则表达式”)@Joey-说得好。我想我已经读了太多相同的问题。答案也相应地被编辑了。CodeGnome,对于如此琐碎的事情,顺便说一句,使用正则表达式是完全可以的。没有嵌套结构,绝对是你所期望的一种常规语言。见鬼,为什么不使用正则表达式?它们就是为了这个目的而存在的:)
<?php

$html="<TR><TD>VAL1</TD><TD>KEY1</TD></TR><TR><TD>VAL2</TD><TD>KEY2</TD></TR>";

$doc = new DOMDocument();
$doc->loadHTML($html);

print_r($doc->getElementById(1)->tagName);

$output=array();
$n=0;
while ($val = $doc->getElementsByTagName('td')->item($n++)) {
  $key = $doc->getElementsByTagName('td')->item($n++);
  $output[$key->textContent]=$val->textContent;
}

print_r($output);
Array
(
    [VAL1] => KEY1
    [VAL2] => KEY2
)