zoukankan      html  css  js  c++  java
  • 正则表达式 处理srt

    处理srt的<font  color ="" > 所用的正则表达式为 <.*?>  而不是<.*>?

    目标: 1 删除序号行  序号行只有一个数字代表scription片段的编号, 数字可能是一位也可能是多位

       2删除time stamp 行, 该行的标志是 00:00:21,660 --> 00:00:26,640

       3 删除空白行  

            4 删除格式控制注释  标志 Laura Boyd</font><font color="#E5E5E5"> I'm a</font>

    解决方案:

    删除序号行与time stamp 行

    ^d.*s* 可以同时删除行号 和time stamp

    删除空白行

    ^s*

    删除格式控制注释

    <.*?>

    再加上正则表达式的  或 语句 | ,把三条语句结合到一块   

    ^d.*s* |^s* |<.*?>

    或语句 参照  http://www.nowamagic.net/librarys/veda/detail/1265

    要点解析:

    和$的功能不同,用 可以删除行,$ 不行

    ^d.*s*

    ^ 表示行开头 d表示一位数字,.*表示任意长度字符 s*表示任意长度,任意类型空格 换行  所以这句话为 每行由行首至换行内部,一个数字起始,后接任意长度字符,再接任意长度空格

    ^s* 由行首至换行,内部仅有任意长度空格

    <.*?>  尖括号内部由任意长度字符串,?为最短匹配  

    以下为试验版本,可看可不看


    ^d{2}:.*  匹配time stamp  00:00:36,090 --> 00:00:40,260

    ^d*s*$

    ^s*  ^s*$是有区别的,前者可以删除空行,后者只能匹配,不能删除

  • 相关阅读:
    Java
    HashMap数据结构与实现原理解析(干货)
    Java
    Java
    Java
    面向对象基础
    Java
    Java
    Java
    shell脚本
  • 原文地址:https://www.cnblogs.com/liyongguo/p/6920856.html
Copyright © 2011-2022 走看看