Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Java中的自定义正则表达式_Android_Regex - Fatal编程技术网

Android Java中的自定义正则表达式

Android Java中的自定义正则表达式,android,regex,Android,Regex,我必须实现一个检查字符串是否符合正则表达式的函数,我编写了一个解析文件名列表的方法,对于每个需要检查是否遵守regexp的文件名 文件名的组成如下(仅举一个示例): 普通照会.pdf.001.001 image.jpg.002.001 字符串始终由以下内容组成: 分机(仅限jpg或pdf)“”一组三个数字“”一组三个数字 使用此regexp,我需要检查输入端的字符串是否如上所述,我目前实现了以下功能: Pattern rexExp = Pattern.compile("((\\.jpg)|(

我必须实现一个检查字符串是否符合正则表达式的函数,我编写了一个解析文件名列表的方法,对于每个需要检查是否遵守regexp的文件名

文件名的组成如下(仅举一个示例):

  • 普通照会.pdf.001.001

  • image.jpg.002.001

字符串始终由以下内容组成:

分机(仅限jpg或pdf)“一组三个数字一组三个数字

使用此regexp,我需要检查输入端的字符串是否如上所述,我目前实现了以下功能:

Pattern rexExp = Pattern.compile("((\\.jpg)|(\\.pdf))\\.[0-9]{3}\\.[0-9]{3}");
但是工作不正常,使用regExp检查文件名是否以某个路径结尾是一个好主意吗?

这应该可以工作:

.*\\w{3}\\.\\d{3}\\.\\d{3}
.*=任何字符(如“口头123”)

\\w{3}=任意3个字母\数字字符

\\=圆点

\\d{3}=任意三个数字字符

这应该可以:

.*\\w{3}\\.\\d{3}\\.\\d{3}
.*=任何字符(如“口头123”)

\\w{3}=任意3个字母\数字字符

\\=圆点


\\d{3}=任意三个数字字符

比另一个答案更贪婪,认为它适合您:

\\w+\\.(jpg|pdf)(\\.\\d{3}){2}
  • 文件名,仅由字母、数字和_
  • 圆点
  • jpg或pdf格式
  • 另一个点
  • 三位数
  • 点和三个数字重复

    • 与另一个答案相比,不要那么贪婪,认为它适合你:

      \\w+\\.(jpg|pdf)(\\.\\d{3}){2}
      
      • 文件名,仅由字母、数字和_
      • 圆点
      • jpg或pdf格式
      • 另一个点
      • 三位数
      • 点和三个数字重复

      要检查字符串是否以
      pdf
      jpg
      结尾,以及两个
      序列和3位数字结尾,您可以使用

      (?i)(?:jpg|pdf)(?:\.[0-9]{3}){2}$
      

      详细信息

      • (?i)
        -不区分大小写标志
      • (?:jpg | pdf)
        -要么
        jpg
        要么
        pdf
      • (?:\.[0-9]{3}){2}
        -a
        的2个重复和3个数字
      • $
        -字符串结束
      Matcher#find()
      一起使用(因为
      matches()
      将匹配锚定在字符串的开头和结尾,而使用此模式时需要部分匹配):


      要检查字符串是否以
      pdf
      jpg
      结尾,以及两个
      序列和3位数字结尾,可以使用

      (?i)(?:jpg|pdf)(?:\.[0-9]{3}){2}$
      

      详细信息

      • (?i)
        -不区分大小写标志
      • (?:jpg | pdf)
        -要么
        jpg
        要么
        pdf
      • (?:\.[0-9]{3}){2}
        -a
        的2个重复和3个数字
      • $
        -字符串结束
      Matcher#find()
      一起使用(因为
      matches()
      将匹配锚定在字符串的开头和结尾,而使用此模式时需要部分匹配):