正则表达式以记录开头,以数字开头并以特定字符串结尾

时间:2015-02-06 04:03:13

标签: php regex

我使用如下所示的file_get_contents获得了一些结果。

30049988.html" >Title1
297816.html" >Title2
2979922.html" >Title3
29736.html" >Title4
22833.html" >Title5

我想删除丑陋的部分(number.html">)并仅获取标题,我该如何实现?

3 个答案:

答案 0 :(得分:1)

您可以使用preg_replace功能。

preg_replace('~.*?>~', '', $string);

DEMO

.*?将执行零个或多个字符的非贪婪匹配。

OR

preg_replace('~^\d+\.html" >~', '', $string);

答案 1 :(得分:1)

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;
}

答案 2 :(得分:1)

你试试这个正则表达式。

(?=T)(\w+)

如何运作

  1. (?=T) - 这是一个积极的前瞻。它检查模式是否以T开头,然后才进行下一步。
  2. (\w+) - 对T
  3. 中的所有单词字符进行分组

    <强> 输出:

    Title1
    Title2
    Title3
    Title4
    Title5
    

    Here is the regex in action