`
化蝶自在飞
  • 浏览: 2329312 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

php正则表达式匹配获取字符串中的时间格式 年月日时分秒

    博客分类:
  • php
阅读更多

 有这样一个需求,要从一个字符串中提取出来时间格式。在网站找了一圈php正则表达式,测试后效果都不太理想,很多还是错误的,严重误导。下面给出一个测试可用的php正则表达式匹配字符串中的时间格式的代码。

正则表达式代码示例如下:

$html = "久久博客www.99xq.cn将在2022-5-26 23:19:59正式改版上线,届时可能存在无法访问的情况,请大家稍安勿躁,最晚在2022-05-27即可恢复访问";
$patten = "/(0?\d{1,4})[^\w\d\r\n:](0?[1-9]|1[0-2])[^\w\d\r\n:](\d{4}|\d{2})\s([0-9]{1,2}):([0-9]{2}):([0-9]{2})/i";
preg_match_all($patten,$html,$matches);
var_dump($matches);

//$matches[0][0]就是获取到的时间,支持的格式如下:
1.2022-5-26 23:19:59
2.2022-05-26 23:19:59
3.22-5-26 23:19:59
4.22-5-26 3:19:59
……
如果你还需要更特殊的,可以调整正则表达式中{}里面的数字,比如{1,2}表示匹配1-2位均可。

通过运行上面代码,可以看到不支持后面的时间提取,因为时间本身是个比较复杂的表现形式,比如跨时区,年月日汉字分割等等。这种情况下可以使用以下方法传递多个正则表达式:

function getMatches($pattern, $subject) {
     $matches = array();

     if (is_array($pattern)) {
         foreach ($pattern as $p) {
             $m = getMatches($p, $subject);

             foreach ($m as $key => $match) {
                 if (isset($matches[$key])) {
                     $matches[$key] = array_merge($matches[$key], $m[$key]);    
                 } else {
                     $matches[$key] = $m[$key];
                 }
             }
         }
     } else {
         preg_match_all($pattern, $subject, $matches);
     }

     return $matches;
 }

 $patterns = array(
     '/<span>(.*?)<\/span>/',
     '/<a href=".*?">(.*?)<\/a>/'
 );

 $html = '<span>some text</span>';
 $html .= '<span>some text in another span</span>';
 $html .= '<a href="https://www.99xq.cn/php/449.html">here is the link</a>';
 $html .= '<address>address is here</address>';
 $html .= '<span>here is one more span</span>';

 $matches = getMatches($patterns, $html);

 print_r($matches);

还有不明白的欢迎留言交流,本文原创自 https://www.99xq.cn/php/449.html

分享到:
评论

相关推荐

    易语言正则表达式类匹配中文

    正则表达式是用于匹配字符串模式的一种强大工具,它使用特定的语法来描述字符串的特征,如单个字符、字符集、重复次数等。在易语言中,正则表达式类提供了多种方法来操作和分析字符串: 1. **创建**:创建正则...

    使用正则表达式检测字符串中重复出现的词

    在本示例中,我们将讨论如何利用正则表达式来检测字符串中重复出现的词。这个功能在数据清洗、文本分析、日志处理等多种场景下都非常实用。 首先,我们要理解正则表达式的概念。正则表达式是由特殊字符和普通字符...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本...用正则表达式替换字符串内容,使用正则表达式切割字符串,字符串匹配,将字符串“&lt;msg&gt;ha&gt;ve modif”中的&gt;替换为&gt;将&lt;替换为&lt;将&替换为2. 等等情况!

    Java根据正则表达式生成字符串—Xeger,automaton

    在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...

    根据正则表达式生成随机字符串

    根据java正则表达式生成一个随机的字符串,具体可以去一下网站看:https://code.google.com/p/xeger/

    使用正则表达式拆分字符串

    在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面将详细阐述正则表达式的概念、语法以及如何在不同编程语言中实现字符串的拆分。 1. 正则表达式基础 - **模式...

    Node.js-execall-发现多个正则表达式匹配的字符串

    标题中的“Node.js-execall-发现多个正则表达式匹配的字符串”指的是一个Node.js模块,该模块专门用于在文本中查找并返回多个正则表达式匹配的结果。这个功能在处理大量文本数据时非常有用,比如在日志分析、文本...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    在JavaScript中,正则表达式同样发挥着重要作用,尤其是在Node.js环境中进行字符串模式匹配时。本文将详细介绍如何在JavaScript中使用正则表达式进行字符串的模式匹配、提取以及替换。 #### 二、基本概念 正则...

    C#正则表达式大全, 判断字符串是否为正整数,中文,英文.....

    该方法使用了正则表达式来匹配字符串中的左边字符,然后将匹配的字符串返回。 正则表达式是一种非常强大的字符串匹配工具,通过使用正则表达式,我们可以实现字符串的各种操作,例如匹配、验证、提取和替换等。然而...

    易语言正则表达式匹配中文

    例如,“正则表达式查找”命令可以找到字符串中所有匹配的子串,“正则表达式替换”则可以将匹配的子串替换成新的内容。 在编程实践中,我们可能会遇到一些挑战,如性能优化、错误处理等。例如,如果待处理的字符串...

    kettle 根据系统时间加正则表达式动态匹配获取多个文本文件

    kettle 根据系统时间加正则表达式动态匹配获取多个文本文件

    C#字符串和正则表达式参考手册

    1. 正则表达式基础:正则表达式是一种模式匹配工具,用于在字符串中搜索、替换和提取特定模式。 2. 正则表达式对象:在C#中,使用`System.Text.RegularExpressions`命名空间下的`Regex`类来处理正则表达式。 3. ...

    JavaScript正则表达式匹配 div style标签

    正则表达式是处理字符串的强大工具,它允许我们对字符串进行匹配、搜索、替换等操作。在JavaScript中,正则表达式以斜杠“/”包围的形式出现,例如`/pattern/flags`。在处理HTML文档时,经常会遇到需要从HTML代码中...

    c#正则表达式截取指定字符串之间的字符串。类文件直接用就可以了~

    给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...

    java正则表达式匹配工具

    例如,`matches()`方法会检查整个输入字符串是否完全符合正则表达式,而`find()`则会在输入字符串中查找第一个匹配的部分。 在Java中,正则表达式的语法相当丰富,包括但不限于: 1. 字符集:`[]`用来定义一组字符...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    在探讨如何利用正则表达式来判断一个字符串除指定字符外不包含其他特殊字符之前,我们首先需要了解正则表达式的基本概念以及本场景中的具体需求。 ### 正则表达式简介 正则表达式是一种强大的文本处理工具,能够...

    正则表达式随机生成字符串工具

    通过定义不同的正则表达式,用户可以生成各种类型的字符串,比如纯数字、字母、包含特殊字符的组合,甚至可以模拟邮箱地址、电话号码等特定格式的字符串。这对于测试、数据填充或者安全研究等场景非常有用。 正则...

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    powerbuilder正则表达式,取字符串

    powerbuilder正则表达式,可以截取不定字符串。如 string ls_text ls_text = ' date of payment: 01.11.2004 ' …… ls_date = lnvo_re.of_getmatch(ls_text) //'01.11.2004' ls_day = lnvo_re.of_getmatch(ls_text,...

Global site tag (gtag.js) - Google Analytics