java - 使用关键字匹配列表拆分字符串?

标签 java regex

我有一个分隔符列表,例如 [月、月、年、年、年、小时、小时、分钟、分钟、分钟]等。

并且有输入字符串,例如“2年2个月”,“22周两天”,我想将这些字符串分解为“2年”和“2个月”等。如何使用Java正则表达式?

我尝试通过以下方式进行处理,但不确定如何从这里继续:

String s = "2 mnths 2 years";
String regex = String.join("|", timeWords);
String[] x = s.split(regex);

最佳答案

这是一个利用 positive-lookahead 的正则表达式以及您提到的“分隔符”:

[\-a-zA-Z\d]+\s?(?=(月|月|年|年|小时|小时|分钟|分钟|分钟|周|天))

https://regex101.com/r/Lnid0B/1

关于java - 使用关键字匹配列表拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65785596/

相关文章:

javascript - 确定字符串是否至少有 2 个来自数组的相同元素

java - 从 Firebase 实时数据库检索数据后,在“编辑文本”中设置文本需要一些时间

java - Final关键字的使用

python - 正则表达式优化 - C enum typedef

删除字符串中最后一个句点后的文本

python - 为什么我的正则表达式模式允许数字?

java - 这个spring代码线程安全吗?

java - 将 CharArray 传递给方法

java - Java cron中问号的意义

javascript - 从字符串末尾删除空格不起作用