我对正则表达式很陌生,我有试错法测试。
如何更换:
<input name="token" type="text" id="test" value="">
首先如果 id 存在,它将首先搜索id="test"
,它会在value=""
代码中设置“变量”。
但如果value=""
包含变量
例如:
<input name="token" type="text" id="test" value="token" />
它应该将整个value="token"
替换为所需的变量。
preg_match('%<[^>]*(id="test"[^>]*>)([^<]*)</[^>]*>%', $html, $match);
它只搜索具有结束标记的HTML标记
ex:<div id="test"></div>
以及来自'input tags'的值。我提出了这个不太好的解决方案。
$data['token'] = 'test';
str_replace(array_keys($data),array_values($data),$html);
有人可以帮助我,并给我一些有关PHP正则表达式的提示。谢谢。
答案 0 :(得分:1)
尝试:
<[^>]*value="(['token'"]*)"[^>]*>
Negated char class [^>] 0 to infinite times
[greedy] matches any character except:> The character >
value=" Literal value="
1st Capturing group (['token'"]*)
Char class ['token'"] 0 to infinite times [greedy] matches:
'token'" One of the following characters 'token'"