我是正则表达式的新手.我想从网页源中获取一些数据.我曾经
file_get_contents("url")获得该页面的HTML源代码.现在我想在一些特殊标签中捕获一部分.
我preg_match_all()为此找到了作品.现在我想要一些帮助来解决我的问题,如果可能的话,帮助我找出如何解决这样的类似问题.
在下面的示例中,我如何获取数据<ul>?(我希望这个示例HTML代码可以让我更容易理解.)
<div class="a_a">qqqqq<span>www</span> </div>
<ul>
<li>
<div class="a_a"><h3>aaaa</h3> aaaa aaaaa</div>
</li>
<li>
<div class="b_b">bbbbb <span class="s-s">bbbb</span> bbbb</div>
</li>
<li>
<div class="c_c d-d">cccc cccc ccccc</div>
</li>
</ul>
<table>
<tr>
<td>sdsdf</td>
<td>hjhjhj</td>
</tr>
<tr>
<td>yuyuy</td>
<td>ertre</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud) $string2 = '<tag id="123">123</tag>';
$string2 =~ s/123(?![^><]*>)/456/cg;
Run Code Online (Sandbox Code Playgroud)
(?![^><]*>)我需要关于上面代码中的负向后看模式的解释。
什么是用于检测loo的正则表达式和用于检测while循环的另一个正则表达式.想要检测for(--;--;--)和while (--comparison operator --)构建.
我正在学习RegEx和网站抓取,并提出以下问题,如果得到解答,应该大大加快我的学习过程.
我以htmlencoded格式从网站上获取了表单元素.也就是说,我有$ content字符串,所有标签都完好无损,如下所示:
$content = "<form name="sth" action="">
<select name="city">
<option value="one">One town</option>
<option value="two">Another town</option>
<option value="three">Yet Another town</option>
...
</select>
</form>
Run Code Online (Sandbox Code Playgroud)
我想以这种方式获取网站上的所有选项:
array("One Town" => "one", "Another Town" => "two", "Yet Another Town" => "three" ...);
Run Code Online (Sandbox Code Playgroud)
现在,我知道这可以很容易地通过操纵字符串,切片切割它,搜索每个字符串中的子串,等等,直到我拥有我需要的一切.但我确信必须有一种更简单的方法来使用正则表达式,它应该立即从给定的字符串中获取所有结果.任何人都可以帮我找到一个快捷方式吗?我搜索过网络上最好的正则表达式网站,但无济于事.
非常感谢
使用PHP正则表达式,我如何删除HTML标签(打开和关闭)和使用属性,如<hr class="myclass" />不删除非HTML标签<dog>或<dog class="cat">?
非HTML标记是动态的,不能进行硬编码.
输入:
<b><> <<> <dog> <123> <" !> <!--...--> <!doctype> <hr class="myclass" /> </b>
Run Code Online (Sandbox Code Playgroud)
输出应该是:
<> <<> <dog> <123> <" !>
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用HTML Purifier但首先我需要知道这是否可以在正则表达式中使用.
HTML标记参考:http://www.quackit.com/html/tags/
在此先感谢=)
我不是很擅长正则表达式,但我想只使用一个正则表达式来匹配两者:
<span></span>有什么建议吗?
可能重复:
如何使用PHP解析和处理HTML?
$content = "
<p>This is the first paragraph</p>
<p>This is the second paragraph</p>
<p>This is the third paragraph</p>";
Run Code Online (Sandbox Code Playgroud)
给定上面的一串html内容,我需要在第N段标记之后插入.
我如何解析内容并插入给定的文本字符串,在第2段之后说"你好世界"?
我有一个算术表达式
string exp = "((2+3.1)/2)*4.456";
Run Code Online (Sandbox Code Playgroud)
我想通过使用正则表达式进行验证.表达式只能有整数,浮点数,操作数和括号.
我如何生成正则表达式来验证请帮助或建议任何其他方式来验证该字符串.
我有这样的span标签:
<span id="item.2.2">3 October.--As I must do something or go mad, I write this diary.</span>
Run Code Online (Sandbox Code Playgroud)
我希望能够删除打开和关闭范围,但将文本留在其中.此外,开放范围的id部分确实发生了变化,所以它可能是item.10.2或item.100.5所以我需要考虑到这一点.
**编辑**编辑添加.我想要替换它的文件也有不包含id说明符的span标签,我不想删除它们,或者它们关闭,抱歉我应该早点说.
我有这个:
<table border="1" cellspacing="1" cellpadding="0">
<tbody>
<tr><th class="align-left" style="text-align: left;">Name</th><th>Type</th><th>Size</th><th>Values</th><th>Description</th><th>Attributes</th><th>Default</th></tr>
<tr>
<td>E-mail</td>
<td>text</td>
<td>60</td>
<td>test@test.com</td>
<td> </td>
<td>M</td>
<td>test@test.com</td>
</tr>
<tr>
<td>Phone</td>
<td>text</td>
<td>20</td>
<td>01-250 481 00</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>Run Code Online (Sandbox Code Playgroud)
这是代码的样子:
我想基于(名称)左边的(值)用regex/regexp提取信息,但我不知道这是否可能......
例如,我想搜索"电话"并获得"01-250 481 00"
你怎么看?
regex ×9
html ×4
php ×4
perl ×2
c# ×1
java ×1
javascript ×1
mysql ×1
preg-match ×1
string ×1
web-crawler ×1