vb.net 正则表达式解析一些奇奇怪怪的文件名为时间类型

news2024/9/23 19:14:46



    Public Function 正则表达式A(f As String) As Date
        '2023-02-06 1653830
        If New Regex("\d{4}.\d{2}.\d{2}.\d{6}").IsMatch(f) Then
            Dim nian = Strings.Mid(f, 1, 4)
            Dim yue = Strings.Mid(f, 6, 2)
            Dim ri = Strings.Mid(f, 9, 2)
            Dim shi = Strings.Mid(f, 12, 2)
            Dim feng = Strings.Mid(f, 14, 2)
            Dim miao = Strings.Mid(f, 16, 2)
            Return New Date(nian, yue, ri, shi, feng, miao)
        End If
        Return Nothing
    End Function
    Public Function 正则表达式B(f As String) As Date
        'IMG_20190924_182424
        'VID_20190924_182424
        'MVIMG_20190924_182424
        If New Regex("(?:IMG|VID|MVIMG).20\d{6}.\d{6}").IsMatch(f) Then
            If Strings.Left(f, 5) = "MVIMG" Then
                f = Strings.Replace(f, "MVIMG", "AAA")
            End If
            Dim nian = Strings.Mid(f, 5, 4)
            Dim yue = Strings.Mid(f, 9, 2)
            Dim ri = Strings.Mid(f, 11, 2)
            Dim shi = Strings.Mid(f, 14, 2)
            Dim feng = Strings.Mid(f, 16, 2)
            Dim miao = Strings.Mid(f, 18, 2)
            Return New Date(nian, yue, ri, shi, feng, miao)
        End If
        Return Nothing
    End Function
    Public Function 正则表达式C(f As String) As Date
        '微信文件的时间戳
        'mmexport1522311367525
        If New Regex("mmexport1\d{12}").IsMatch(f) Then
            Dim startTime = TimeZone.CurrentTimeZone.ToLocalTime(New System.DateTime(1970, 1, 1))
            Dim time = Strings.Mid(f, 9, 13)
            Return startTime.AddMilliseconds(time)
        End If
        Return Nothing
    End Function
    Public Function 正则表达式D(f As String) As Date
        '好像是小米的时间解析
        'Screenshot_2023-03-13-18-46-44-425_com.tencent.wework
        If New Regex("Screenshot_20\d{2}.\d{2}.\d{2}.\d{2}.\d{2}.\d{2}").IsMatch(f) Then
            f = Strings.Replace(f, "Screenshot_", "")
            '2023-03-13-18-46-44-425_com.tencent.wework
            Dim nian = Strings.Mid(f, 1, 4)
            Dim yue = Strings.Mid(f, 6, 2)
            Dim ri = Strings.Mid(f, 9, 2)
            Dim shi = Strings.Mid(f, 12, 2)
            Dim feng = Strings.Mid(f, 15, 2)
            Dim miao = 0
            Return New Date(nian, yue, ri, shi, feng, miao)
        End If
        Return Nothing
    End Function
      Dim str = 文件名
            Dim reta = 正则表达式A(Str)
            If reta <> Nothing Then
                i.正则表达式匹配结果 = "命中A方案"
                i.解析的时间 = reta
                Continue For
            End If

            reta = 正则表达式B(str)
            If reta <> Nothing Then
                i.正则表达式匹配结果 = "命中B方案"
                i.解析的时间 = reta
                Continue For
            End If

            reta = 正则表达式C(str)
            If reta <> Nothing Then
                i.正则表达式匹配结果 = "命中C方案"
                i.解析的时间 = reta
                Continue For
            End If

            reta = 正则表达式D(str)
            If reta <> Nothing Then
                i.正则表达式匹配结果 = "命中D方案"
                i.解析的时间 = reta
                Continue For
            End If
  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是编程语言?||与编程相关的计算机硬件介绍

什么是编程语言&#xff1f; 学习编程语言之前&#xff0c;首先要搞清楚“编程语言”这个概念。 很小的时候&#xff0c;父母就教我们开口说话&#xff0c;也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习&#xff0c;我们竟然在不知不觉中学会了说话&#xff0c…

【从零开始学习JAVA | 第二十二篇】BigInteger

目录 前言&#xff1a; BigInterger&#xff1a; BigInteger常见的方法&#xff1a; 总结&#xff1a; 前言&#xff1a; 本篇我们将介绍BigInteger这个比较实用一点的API&#xff0c;这个API在我们实际写项目中都是很实用的API&#xff0c;因此大家应该对这个API有更加熟练的…

sublime text 打开 txt 文档乱码问题

对于 windows 系统使用系统自带的 txt 编辑工具&#xff0c;默认打开和保存文件的文件的格式是 GBK 或者 GB2312&#xff0c;而 sublime 默认仅支持 utf-8&#xff0c;所以当从 windows 系统拷贝文件在 mac 上浏览有时候会出现乱码的问题&#xff0c;这时候就需要安装插件使 su…

RDBMS 与 非RDBMS

RDBMS vs 非RDBMS 前言一、关系型数据库(RDBMS)1、实质2、优势 二、非关系型数据库(非RDBMS)1、介绍2、有哪些非关系型数据库3、NoSQL的演变4、小结 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注博主&#xff01;…

基于uni-app+vue3跨端「h5+小程序+App」仿制chatGPT模板实例

uni-chatgpt 一款uniappvite4uview-plus多端ChatGPT模板实例。 全新首发的一款多端仿制chatgpt智能对话实战项目&#xff0c;基于uniAppVue3PiniauViewUIMarkdownIt等技术开发搭建项目。支持编译到h5小程序APP端&#xff0c;支持markdown语法解析及代码高亮。 功能特点 全屏沉…

LinkedList的底层实现原理(JDK8)

目录 一、知识点回顾二、LinkedList 的 add() 和 remove() 的实现2.1 list.add(e) 实现原理2.2 list.remove(e) 实现原理 一、知识点回顾 双向链表特点&#xff1a; 区间离散&#xff0c;占用内存宽松&#xff0c;空间复杂度小&#xff0c;时间复杂度 O(n)。优点&#xff1a;…

Android Jetpack Compose —— FloatingActionButton

FloatingActionButton 通常用于呈现应用程序的主要操作或常用操作&#xff0c;并具有显著的圆形形状和浮动的定位。FloatingActionButton 提供了一种简单而优雅的方式来引导用户进行主要的应用程序交互&#xff0c;例如开始一个新的任务、分享内容、启动一个动作等。它在应用程…

Java——《面试题——Zookeeper篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java…

FreeRTOS 中断管理之延迟中断处理 -- 二值信号量同步

3.1 概览 3.1.1 事件&#xff1a;嵌入式实时操作系统需要对整个系统环境产生的事件作出反应&#xff0c;例如&#xff1a;按一下按键&#xff0c;灯闪一下 3.1.2 ISR 中断服务函数尽量越短越好&#xff0c;应快速执行完&#xff0c;然后退出中断服务函数 3.1.3 在中断服务函…

Web3在HTML中获取 MetaMask 启用的用户列表

当然 我们还是要先启动ganache环境 然后 通过MetaMask 导入一些用户 然后 我们需要在页面中引入 web3.min.js 如果您还没有这个文件 可以查看我的文章web3.js获取导入 然后我访问官网 https://learnblockchain.cn/docs/web3.js/web3-eth.html#getchainid 打开后 先来到 web3.…

OAuth2.0四种授权模式及实战

OAuth2.0四种授权模式以及Oauth2.0实战 首先我们得了解什么是Oauth2.0&#xff0c;简单来说Oauth2.0它是一个授权协议。我们可能会听说过&#xff0c;使用Oauth2.0来实现单点登录SSO&#xff0c;以及第三方登录。那个什么是授权&#xff1f; 举个通俗易懂的例子&#xff0c;就…

概率论与数理统计教程第六章节笔记

参考书籍&#xff1a;概率论与数理统计教程第三版 茆诗松 程依明 濮晓龙 编著 文章声明&#xff1a;如有错误还望批评指正 文章目录 ξ \xi ξ 6.1点估计的概念与无偏性 ξ 6.2 \xi6.2 ξ6.2矩估计及相和性 ξ 6.3 \xi6.3 ξ6.3最大似然估计与EM算法 ξ 6.6 \xi6.6 ξ6.6区间估…

Pandas 解决保存excel文件发生异常问题

代码&#xff1a; #保存excel my.to_excel(df.xlsx,#设置Excel1的工作表名sheet_name表1) 异常&#xff1a; 原因&#xff1a;没有导入这个库openpyxl 解决&#xff1a; 1) 使用 pip list 查看 2) 如果没有&#xff0c;则安装 pip install openpyxl 3) 再导入 import openpyx…

uniapp中引入uview教程

uview官网&#xff0c;本次教程中用不到&#xff0c;若需要查看官网教程&#xff0c;可点击前往 1、在插件市场中搜索uview&#xff0c;并导入项目&#xff0c;点击前往 2、如果没有安装scss&#xff0c;需要安装scss依赖&#xff0c;如已安装&#xff0c;请跳过 // 安装sass…

【刷题笔记】反转链表——头插法/栈实现

【刷题笔记】反转链表——头插法/栈实现 解法一&#xff1a;头插法 思路及代码&#xff1a; * 1、创建一个newheadnull&#xff0c;即最终反转后的链表的头结点* 2、循环遍历当前的链表的head&#xff0c;创建temp记录当前head的next&#xff0c;然后将head的next指向新的头ne…

Acer宏碁Swift笔记本电脑SF314-54原装Win10系统工厂模式恢复原厂OEM出厂系统镜像

Acer宏基&#xff0c;Acer宏碁Swift笔记本电脑&#xff0c;Swift SF314-54原装Windows10系统工厂模式恢复原厂OEM出厂状态镜像 系统自带所有驱动、Office办公软件、出厂主题壁纸LOGO、 Acer Care Center、Quick Access等预装程序 所需要工具&#xff1a;32G或以上的U盘&#…

springboot+vue高校科研队伍管理系统_2byeq-

1.登录和注册&#xff1a;创建用户密码后用户输入正确用户密码即可登录&#xff0c;超级管理员可查看平台内所有账号信息。 2.个人信息管理&#xff1a;支持修改个人信息以及保存。 3.科研队伍管理&#xff1a;支持创建科研队伍&#xff0c;个人可以创建队伍后自己成为组长&…

uniapp倒计时

uniapp实现根据传递的时间展示倒计时 需求说明&#xff1a;听书倒计时&#xff0c;设置完时间展示倒计时 countDownTime(showTime){ //showTime为传递的时间 默认在转化成分钟var that this;that.times showTime * 60that.timer setInterval(function() {that.times--;if(th…

教程 | Datavines 自定义数据质量检查规则(Metric)

Metric 是 Datavines 中一个核心概念&#xff0c;一个 Metric 表示一个数据质量检查规则&#xff0c;比如空值检查和表行数检查都是一个规则。Metric 采用插件化设计&#xff0c;用户可以根据自己的需求来实现一个 Metric。下面我们来详细讲解一下如何自定义Metric。 第一步 …

WPF 零基础入门笔记(3):数据绑定详解(更新中)

文章目录 文章合集数据绑定数据绑定实战事件通知型数据驱动&#xff0c;双向绑定资源绑定数据源绑定全局数据源后端和前端绑定问题 文章合集 WPF基础知识博客专栏 WPF微软文档 WPF控件文档 B站对应WPF数据绑定视频教程 数据绑定 我们在之前的文章中&#xff0c;详细解释了数…