我正在尝试获取涵盖以下组合的正则表达式:
1h
2m
3s
1h 2m
1h 2m 3s
2m 3s
到目前为止,我有下一个:(\ d + h \ s?)?(\ d + m \ s?)?(\ d + s \ s?),但它不能正常工作。
谁能给我一个主意?
最佳答案
试试这个正则表达式:
(?:\d+h)(?: \d+m(?: \d+s)?)?|\d+m(?: \d+s)?|\d+s
说明:
(?:\d+h)(?: \d+m(?: \d+s)?)? match 1h or 1h 2m or 1h 2m 3s
\d+m(?: \d+s)? match 2m or 2m 3s
\d+s match 3s
请点击下面的Java代码链接,以针对您的示例输入演示此正则表达式。
Rextester