Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想制作一个正则表达式,以便可以匹配以下日期并将其元素传递给另一个函数:
"21Feb14"
现在的问题是前两位数。用户可以编写一个“day”字段为一位数或两位数的日期:
"21feb14" and "1jan13"
两者都是有效的输入。我制作的正则表达式如下所示:
val reg = """(\\d)([a-zA-Z][a-zA-Z][a-zA-Z])(\d\d)""".r
它显然没有考虑到第一个数字可能存在也可能不存在。我该如何处理?
?标记处理。像这样,
?
(\d?\d)([a-zA-Z][a-zA-Z][a-zA-Z])(\d\d)
但我建议你使用以下正则表达式
(\d?\d)([a-zA-Z]{3})(\d\d)
或使用 posix
(\d?\d)([\p{Alpha}]{3})(\d\d)
这个更具可读性和可维护性
val reg = """(\d{1,2})([a-zA-Z]{3})(\d{2})""".r
这里的解释:http ://regex101.com/r/uZ9qI5