正则表达式以数字开头并以特定字符串结尾的记录
问题描述:
我使用下面的file_get_contents获得了一些结果。正则表达式以数字开头并以特定字符串结尾的记录
30049988.html" >Title1
297816.html" >Title2
2979922.html" >Title3
29736.html" >Title4
22833.html" >Title5
我想删除丑陋的部分(number.html”>),并只获得标题,我怎么能实现呢?
答
preg_replace函数方法将工作,但回答其他任何人知道了原来的问题。
<?php
$string = <<<EOF
30049988.html" >Title1
297816.html" >Title2
2979922.html" >Title3
29736.html" >Title4
22833.html" >Title5
EOF;
preg_match_all('~[^>]+>([^\\n]+)$~smU', $string, $matches);
if (!isset($matches[1])) {
echo 'No results found ..'. PHP_EOL;
exit;
}
foreach ($matches[1] as $match) {
echo $match.PHP_EOL;
}
答
你试试这个正则表达式。
(?=T)(\w+)
这是如何工作的
-
(?=T)
- 这是一个积极的前瞻。它检查模式是否以T
开始,然后才会继续下一步。 -
(\w+)
- 这组字来自于T
。
输出:
Title1
Title2
Title3
Title4
Title5
您正在处理的是HTML吗? – 2015-02-06 04:10:49
我正在尝试在我最后一个问题中处理HTML,但放弃了,找到了使用strip_tags()返回结果的另一种方式() – salep 2015-02-06 04:39:34