繁体   English   中英

正则表达式用于以数字开头和以特定字符串结尾的记录

[英]Regex for a record that starts with a number and ends with a particular string

我使用下面的file_get_contents得到了一些结果。

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

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

您可以使用preg_replace函数。

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

演示

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

要么

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

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+)

如何运作

  1. (?=T) -这是一个积极的前瞻。 它检查模式是否以T开头,然后才继续。
  2. (\\w+) -这会将T所有单词字符分组。

输出:

Title1
Title2
Title3
Title4
Title5

这是正在使用的正则表达式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM