PHP regex返回<;选项>;价值观
我只是想知道你是否可以帮我完成一个小任务,我正在尝试用php做 我在一个文件中有这样的文本:PHP regex返回<;选项>;价值观,php,regex,pattern-matching,web-scraping,Php,Regex,Pattern Matching,Web Scraping,我只是想知道你是否可以帮我完成一个小任务,我正在尝试用php做 我在一个文件中有这样的文本: (random html) ... <OPTION VALUE="195" SELECTED>Physical Chem <OPTION VALUE="239">Physical Chem Lab II <OPTION VALUE="555">Physical Chem for Engineers
(random html)
...
<OPTION VALUE="195" SELECTED>Physical Chem
<OPTION VALUE="239">Physical Chem Lab II
<OPTION VALUE="555">Physical Chem for Engineers
...
(random html)
使用此函数的返回值:
数组([0]=>OPTION VALUE=“195[1]=>195)数组([0]=>OPTION VALUE=“195[1]=>195)
我怎样才能归还所有的#
我是模式匹配的新手,我读过的教程对我没什么帮助,所以非常感谢 试试这个:
preg\u match\u all(“/选项值=\”([0-9])+\“/”,$data,$matches)代码>
编辑
我误解了你的问题。更改为preg\u match\u all()
preg\u match\u all(“/选项值=\”([0-9])+\“/”,$data,$matches)代码>
编辑
我误解了你的问题。更改为preg\u match\u all()
尝试使用preg\u match\u all()
尝试使用preg\u match\u all()
我认为你做得对。PHP返回[0]中的完全匹配,然后将捕获的组(parenthase)作为其他组返回
看看这个:
我认为你做得对。PHP返回[0]中的完全匹配,然后将捕获的组(parenthase)作为其他组返回
看看这个:
preg\u match将返回仅包含第一个匹配项的数组。数组的第一个索引将返回与完整正则表达式的匹配,第二个索引与括号中的捕获组匹配,请尝试以下操作以了解其工作原理:
preg_match("/(OPTION) VALUE=\"([0-9]*)/", $data, $matches);
print_r($matches);
您将看到它输出以下内容:
Array
(
[0] => OPTION VALUE="195
[1] => OPTION
[2] => 195
)
数组[0]包含完全匹配的数据,数组[1]包含来自第一个捕获组(选项)的数据,数组[2]包含来自第二个捕获组([0-9]*)的数据
为了匹配多个事件,需要使用preg_match_all函数。如果我们将此应用于您的原始代码,如下所示:
preg_match_all("/OPTION VALUE=\"([0-9]*)/", $data, $matches);
print_r($matches);
我们得到:
Array
(
[0] => Array
(
[0] => OPTION VALUE="195
[1] => OPTION VALUE="239
[2] => OPTION VALUE="555
)
[1] => Array
(
[0] => 195
[1] => 239
[2] => 555
)
)
我希望这能把事情说清楚 preg_match将返回仅包含第一个匹配项的数组。数组的第一个索引将返回与完整正则表达式的匹配,第二个索引与括号中的捕获组匹配,请尝试以下操作以了解其工作原理:
preg_match("/(OPTION) VALUE=\"([0-9]*)/", $data, $matches);
print_r($matches);
您将看到它输出以下内容:
Array
(
[0] => OPTION VALUE="195
[1] => OPTION
[2] => 195
)
数组[0]包含完全匹配的数据,数组[1]包含来自第一个捕获组(选项)的数据,数组[2]包含来自第二个捕获组([0-9]*)的数据
为了匹配多个事件,需要使用preg_match_all函数。如果我们将此应用于您的原始代码,如下所示:
preg_match_all("/OPTION VALUE=\"([0-9]*)/", $data, $matches);
print_r($matches);
我们得到:
Array
(
[0] => Array
(
[0] => OPTION VALUE="195
[1] => OPTION VALUE="239
[2] => OPTION VALUE="555
)
[1] => Array
(
[0] => 195
[1] => 239
[2] => 555
)
)
我希望这能把事情说清楚