java - 正则表达式匹配以字符结尾但不包含该字符的字符串

标签 java regex

我需要匹配电影的质量并订购它们。该值可以在标题中找到

例。 “华尔街之狼 (2014) (HD, 1080p).mov”

我有一个匹配质量的正则表达式:

"\\d\\d\\d[\\d]*p"

出于某种原因,当我比较(compareTo)它们所订购的值时:

例如

1080p
1080p
480p
480p
480p
720p
720p

480p 列表高于 720p。我相信这是因为 p(?)。我想知道如何更改我的正则表达式以检查是否存在 p(因此标题中的年份不匹配,仅匹配质量)但排除匹配字符串中的 p。

最佳答案

可以使用正则表达式 "(\\d{3,4})p" 通过 Matcher.group(1) 从字符串中提取数字并将它们排序为数字,而不是字符串。字符串按字典顺序进行比较。

关于java - 正则表达式匹配以字符结尾但不包含该字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36105560/

相关文章:

java - 接收对 HttpsURLConnection GET 请求的编码响应

java - 如何通过 SSH 在远程服务器上部署 Spring MVC 应用程序?

javascript - 什么是 HTML 重写的好替代品?

具有 unicode 范围的 Python 正则表达式匹配不在范围内的字符

javascript - 解析/操作格式奇怪的 json 数组

c# - 确保文本框的第一个和最后一个字符是数字c#

java - 了解位 vector 在查找字符串中的唯一字符时的用法

java - EntityManager 不持久化实体类?

java - Space Invaders - 奇怪的运动与外星人运动算法

php - 为什么这个正则表达式会失败?