Android Java中的自定义正则表达式
我必须实现一个检查字符串是否符合正则表达式的函数,我编写了一个解析文件名列表的方法,对于每个需要检查是否遵守regexp的文件名 文件名的组成如下(仅举一个示例):Android Java中的自定义正则表达式,android,regex,Android,Regex,我必须实现一个检查字符串是否符合正则表达式的函数,我编写了一个解析文件名列表的方法,对于每个需要检查是否遵守regexp的文件名 文件名的组成如下(仅举一个示例): 普通照会.pdf.001.001 image.jpg.002.001 字符串始终由以下内容组成: 分机(仅限jpg或pdf)“”一组三个数字“”一组三个数字 使用此regexp,我需要检查输入端的字符串是否如上所述,我目前实现了以下功能: Pattern rexExp = Pattern.compile("((\\.jpg)|(
- 普通照会.pdf.001.001
- image.jpg.002.001
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
-a(?:\.[0-9]{3}){2}
的2个重复和3个数字
-字符串结束$
Matcher#find()
一起使用(因为matches()
将匹配锚定在字符串的开头和结尾,而使用此模式时需要部分匹配):
要检查字符串是否以
pdf
或jpg
结尾,以及两个
序列和3位数字结尾,可以使用
(?i)(?:jpg|pdf)(?:\.[0-9]{3}){2}$
见
详细信息
-不区分大小写标志(?i)
-要么(?:jpg | pdf)
要么jpg
pdf
-a(?:\.[0-9]{3}){2}
的2个重复和3个数字
-字符串结束$
Matcher#find()
一起使用(因为matches()
将匹配锚定在字符串的开头和结尾,而使用此模式时需要部分匹配):