Regex 正则表达式只匹配一行中四个数字的第一个匹配项

Regex 正则表达式只匹配一行中四个数字的第一个匹配项,regex,Regex,我想通过正则表达式对成千上万的书目条目进行排序。每个条目都是这样构建的: 姓,姓。1900头衔等 现在我需要一个正则表达式来匹配1900。这项工作: [0-9]{4} 不幸的是,有些标题包含一个以上的四位数组,例如: 姓,姓。1900标题:1920-1930。等等 但我只想匹配四位数字组(即1900,但不是1920或1930) 任何帮助都将不胜感激 只要简单地使用这个: \b\d{4}\b 它将匹配第一次出现的4个连续数字。使用此选项: (^|\.)\s*([0-9]{4})\s*(\.|$

我想通过正则表达式对成千上万的书目条目进行排序。每个条目都是这样构建的:

姓,姓。1900头衔等

现在我需要一个正则表达式来匹配1900。这项工作:

[0-9]{4}
不幸的是,有些标题包含一个以上的四位数组,例如:

姓,姓。1900标题:1920-1930。等等

但我只想匹配四位数字组(即1900,但不是1920或1930)

任何帮助都将不胜感激

只要简单地使用这个:

\b\d{4}\b
它将匹配第一次出现的4个连续数字。

使用此选项:

(^|\.)\s*([0-9]{4})\s*(\.|$)

哪种正则表达式风格、哪种语言/工具?一旦找到匹配项,可能会有一个标志/替代功能停止搜索。我计划使用TextWranglerCouldn,这不是仍然匹配多次吗?e、 g.1940 XYZ的标题@Shai:No它将只匹配第一次出现的4位数字,因为没有全局修饰符。根据该推理,OP的正则表达式也可以在不修改的情况下工作。因此,我们只能假设我们是在某种隐含的全球环境中工作。抱歉——只是重新阅读指导方针,投反对票是不合适的(你没有“明显地,也许是危险地错误”)!请编辑答案,这样我就可以删除下一票。如果数字在字符串的开头或结尾,则Id无效。谢谢!就这样@kbecker87如果标题在某些位置上有句点(.),则此选项将中断–它将所有4位数字与两侧的句点和空格匹配,而不是“第一个4位数字”。这是否是个问题取决于你。到目前为止,它还可以正常工作,但我只是注意到,我有大约300幅作品使用(19XX)作为年份的标志:
H.O.路德(1968)。
这些作品不匹配。。。有什么想法吗?非常感谢!