正则表达式......尽可能少
Regex... less as possible
我有这个人名及其历史生日的文本:
Прп. Моисея Мурина (ок. 400). Обре́тение мощей прп. Иова Почаевского (1659). Собор преподобных отцов Киево-Печерских, в Дальних пещерах (прп. Феодосия) почивающих. Прп. Саввы Крыпецкого, Псковского (1495). Прав. Анны пророчицы, дщери Фануилевой, встретившей Господа Иисуса Христа в храме Иерусалимском (I). Мц. Шушаники, кн. Ранской (V) (Груз.). Сщмч. Алексия Будрина (1918); прмчч. Казанских: Сергия Зайцева, Лаврентия Никитина, Серафима Кузьмина, Феодосия Александрова, Леонтия Карягина, Стефана, Георгия Тимофеева, Илариона Правдина, Иоанна Сретенского и Сергия Галина (1918). Прп. Исаакия Оптинского (1894). Сщмч. Александра Медведева диакона (1918); сщмч. Николая Георгиевского пресвитера (1931); сщмч. Василия Сокольского пресвитера (1937). Грузинской иконы Божией Матери (1650).
任务是仅对生日早于 1900 年的人进行正则表达式。
在此示例中,正则表达式应标记为:
Сщмч. Алексия Будрина (1918); прмчч. Казанских: Сергия Зайцева, Лаврентия Никитина, Серафима Кузьмина, Феодосия Александрова, Леонтия Карягина, Стефана, Георгия Тимофеева, Илариона Правдина, Иоанна Сретенского и Сергия Галина (1918). Сщмч. Александра Медведева диакона (1918); сщмч. Николая Георгиевского пресвитера (1931); сщмч. Василия Сокольского пресвитера (1937).
我试过这个正则表达式:
(?<=\)\.)(.)+?\((19|20)\d{2}\)\.
使用正向后视 (?<=) 查找“)”。但不知何故它超越了第一场比赛并试图获得尽可能多的..
喜欢:
Обре́тение мощей прп. Иова Почаевского (1659). Собор преподобных отцов Киево-Печерских, в Дальних пещерах (прп. Феодосия) почивающих. Прп. Саввы Крыпецкого, Псковского (1495). Прав. Анны пророчицы, дщери Фануилевой, встретившей Господа Иисуса Христа в храме Иерусалимском (I). Мц. Шушаники, кн. Ранской (V) (Груз.). Сщмч. Алексия Будрина (1918); прмчч. Казанских: Сергия Зайцева, Лаврентия Никитина, Серафима Кузьмина, Феодосия Александрова, Леонтия Карягина, Стефана, Георгия Тимофеева, Илариона Правдина, Иоанна Сретенского и Сергия Галина (1918). Прп. Исаакия Оптинского (1894). Сщмч. Александра Медведева диакона (1918); сщмч. Николая Георгиевского пресвитера (1931); сщмч. Василия Сокольского пресвитера (1937).
部分像...
Обре́тение мощей прп. Иова Почаевского (1659). Собор преподобных отцов Киево-Печерских, в Дальних пещерах (прп. Феодосия) почивающих. Прп. Саввы Крыпецкого, Псковского (1495). Прав. Анны пророчицы, дщери Фануилевой, встретившей Господа Иисуса Христа в храме Иерусалимском (I). Мц. Шушаники, кн. Ранской (V) (Груз.).
或...
Прп. Исаакия Оптинского (1894).
什么才是正确匹配的正确表达方式?
例如:它应该匹配
).一些东西(19\d\d).
不幸的是,这不是俄罗斯演讲者,但这个能让你入门吗?
[\p{L},\h]+
\(1[0-8]\d{2}\)
参见a demo on regex101.com。要扩展名称部分,请在 class 中包含其他字符(例如 .
)
正如其他人所提到的,获取所有日期并在之后以编程方式分析它们可能更容易。
这似乎有效:
(?<=\)[.;])\s*([^()]+\((?:19|20)\d\d\))
非贪婪量词只影响匹配结束的位置,而不影响匹配的开始位置。您需要找到可以排除的内容以防止它过早开始。在这种情况下,排除括号 ([^()]+
) 似乎有效,但我不能保证它总是有效。名称如:
Bill S. Preston (Esq.) (1970)
...将使任务变得更加困难。
我有这个人名及其历史生日的文本:
Прп. Моисея Мурина (ок. 400). Обре́тение мощей прп. Иова Почаевского (1659). Собор преподобных отцов Киево-Печерских, в Дальних пещерах (прп. Феодосия) почивающих. Прп. Саввы Крыпецкого, Псковского (1495). Прав. Анны пророчицы, дщери Фануилевой, встретившей Господа Иисуса Христа в храме Иерусалимском (I). Мц. Шушаники, кн. Ранской (V) (Груз.). Сщмч. Алексия Будрина (1918); прмчч. Казанских: Сергия Зайцева, Лаврентия Никитина, Серафима Кузьмина, Феодосия Александрова, Леонтия Карягина, Стефана, Георгия Тимофеева, Илариона Правдина, Иоанна Сретенского и Сергия Галина (1918). Прп. Исаакия Оптинского (1894). Сщмч. Александра Медведева диакона (1918); сщмч. Николая Георгиевского пресвитера (1931); сщмч. Василия Сокольского пресвитера (1937). Грузинской иконы Божией Матери (1650).
任务是仅对生日早于 1900 年的人进行正则表达式。 在此示例中,正则表达式应标记为:
Сщмч. Алексия Будрина (1918); прмчч. Казанских: Сергия Зайцева, Лаврентия Никитина, Серафима Кузьмина, Феодосия Александрова, Леонтия Карягина, Стефана, Георгия Тимофеева, Илариона Правдина, Иоанна Сретенского и Сергия Галина (1918). Сщмч. Александра Медведева диакона (1918); сщмч. Николая Георгиевского пресвитера (1931); сщмч. Василия Сокольского пресвитера (1937).
我试过这个正则表达式:
(?<=\)\.)(.)+?\((19|20)\d{2}\)\.
使用正向后视 (?<=) 查找“)”。但不知何故它超越了第一场比赛并试图获得尽可能多的.. 喜欢:
Обре́тение мощей прп. Иова Почаевского (1659). Собор преподобных отцов Киево-Печерских, в Дальних пещерах (прп. Феодосия) почивающих. Прп. Саввы Крыпецкого, Псковского (1495). Прав. Анны пророчицы, дщери Фануилевой, встретившей Господа Иисуса Христа в храме Иерусалимском (I). Мц. Шушаники, кн. Ранской (V) (Груз.). Сщмч. Алексия Будрина (1918); прмчч. Казанских: Сергия Зайцева, Лаврентия Никитина, Серафима Кузьмина, Феодосия Александрова, Леонтия Карягина, Стефана, Георгия Тимофеева, Илариона Правдина, Иоанна Сретенского и Сергия Галина (1918). Прп. Исаакия Оптинского (1894). Сщмч. Александра Медведева диакона (1918); сщмч. Николая Георгиевского пресвитера (1931); сщмч. Василия Сокольского пресвитера (1937).
部分像...
Обре́тение мощей прп. Иова Почаевского (1659). Собор преподобных отцов Киево-Печерских, в Дальних пещерах (прп. Феодосия) почивающих. Прп. Саввы Крыпецкого, Псковского (1495). Прав. Анны пророчицы, дщери Фануилевой, встретившей Господа Иисуса Христа в храме Иерусалимском (I). Мц. Шушаники, кн. Ранской (V) (Груз.).
或...
Прп. Исаакия Оптинского (1894).
什么才是正确匹配的正确表达方式?
例如:它应该匹配
).一些东西(19\d\d).
不幸的是,这不是俄罗斯演讲者,但这个能让你入门吗?
[\p{L},\h]+
\(1[0-8]\d{2}\)
参见a demo on regex101.com。要扩展名称部分,请在 class 中包含其他字符(例如 .
)
正如其他人所提到的,获取所有日期并在之后以编程方式分析它们可能更容易。
这似乎有效:
(?<=\)[.;])\s*([^()]+\((?:19|20)\d\d\))
非贪婪量词只影响匹配结束的位置,而不影响匹配的开始位置。您需要找到可以排除的内容以防止它过早开始。在这种情况下,排除括号 ([^()]+
) 似乎有效,但我不能保证它总是有效。名称如:
Bill S. Preston (Esq.) (1970)
...将使任务变得更加困难。