我有以下字符串:
"Josua de Grave* (1643-1712)"
*
之前的所有内容都是人名,第一个日期 1634
是他的出生日期,1712
是他的死亡日期。
按照这个逻辑,我希望每个项目都有 3 个匹配组。我试过了
([a-zA-Z|\s]*)\* (\d{3,4})-(\d{3,4})
"Josua de Grave* (1643-1712)".match(/([a-zA-Z|\s]*)\* (\d{3,4})-(\d{3,4})/)
但是返回零。
为什么我的逻辑错误,我应该怎么做才能获得 3 个预期的匹配组。
最佳答案
需要在正则表达式模式中添加数字 1643-1712
值周围的附加括号 (
)
,因此请使用
([a-zA-Z\s]*)\* \((\d{3,4})-(\d{3,4})\)
// ^^ ^^
由于括号代表捕获的组,因此使用 \
将它们转义以将它们作为字符进行匹配。
关于regex - 如何在正则表达式中匹配不同的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60241381/