我有这个人名及其历史生日的文字:
Прп。 МоисеяМурина(ок.400)。 Обретениемощейпрп。 ИоваПочаевского(1659)。 СоборпреподобныхотцовКиево-Печерских,вДальнихпещерах(прп.Феодосия)почивающих。 Прп。 СаввыКрыпецкого,Псковского(1495)。 Прав。 Анныпророчицы,дщериФануилевой,встретившейГосподаИисусаХриставхрамеИерусалимском(I)。 Мц。 Шушаники,кн。 Ранской(V)(Груз。)。 Сщмч。 АлексияБудрина(1918); прмчч。 Казанских:СергияЗайцева,ЛаврентияНикитина,СерафимаКузьмина,ФеодосияАлександрова,ЛеонтияКарягина,Стефана,ГеоргияТимофеева,ИларионаПравдина,ИоаннаСретенскогоиСергияГалина(1918)。 Прп。 ИсаакияОптинского(1894)。 Сщмч。 АлександраМедведевадиакона(1918); сщмч。 НиколаяГеоргиевскогопресвитера(1931); сщмч。 ВасилияСокольскогопресвитера(1937)。 ГрузинскойиконыБожиейМатери(1650)。
任务是仅对那些生日1900年以上的人进行正则表达。 在这个例子中,正则表达式应该标记:
Сщмч。 АлексияБудрина(1918); прмчч。 Казанских:СергияЗайцева,ЛаврентияНикитина,СерафимаКузьмина,ФеодосияАлександрова,ЛеонтияКарягина,Стефана,ГеоргияТимофеева,ИларионаПравдина,ИоаннаСретенскогоиСергияГалина(1918)。 Сщмч。 АлександраМедведевадиакона(1918); сщмч。 НиколаяГеоргиевскогопресвитера(1931); сщмч。 ВасилияСокольскогопресвитера(1937)。
我试过这个正则表达式:
(?<=\)\.)(.)+?\((19|20)\d{2}\)\.
以positiv lookbehind(?&lt; =)查找')。'但不知怎的,它超越了第一场比赛并试图获得尽可能多的比赛.. 像:
Обретениемощейпрп。 ИоваПочаевского(1659)。 СоборпреподобныхотцовКиево-Печерских,вДальнихпещерах(прп.Феодосия)почивающих。 Прп。 СаввыКрыпецкого,Псковского(1495)。 Прав。 Анныпророчицы,дщериФануилевой,встретившейГосподаИисусаХриставхрамеИерусалимском(I)。 Мц。 Шушаники,кн。 Ранской(V)(Груз。)。 Сщмч。 АлексияБудрина(1918); прмчч。 Казанских:СергияЗайцева,ЛаврентияНикитина,СерафимаКузьмина,ФеодосияАлександрова,ЛеонтияКарягина,Стефана,ГеоргияТимофеева,ИларионаПравдина,ИоаннаСретенскогоиСергияГалина(1918)。 Прп。 ИсаакияОптинского(1894)。 Сщмч。 АлександраМедведевадиакона(1918); сщмч。 НиколаяГеоргиевскогопресвитера(1931); сщмч。 ВасилияСокольскогопресвитера(1937)。
部分如......
Обретениемощейпрп。 ИоваПочаевского(1659)。 СоборпреподобныхотцовКиево-Печерских,вДальнихпещерах(прп.Феодосия)почивающих。 Прп。 СаввыКрыпецкого,Псковского(1495)。 Прав。 Анныпророчицы,дщериФануилевой,встретившейГосподаИисусаХриставхрамеИерусалимском(I)。 Мц。 Шушаники,кн。 Ранской(V)(Груз。)。
...或
Прп。 ИсаакияОптинского(1894)。
什么是正确的表达才能正确匹配?
例如:它应匹配
)。的 SOMETHING (19 \ d \ d)。
答案 0 :(得分:0)
不幸的是,不是俄罗斯的说话者,但是这个会让你开始吗?
[\p{L},\h]+
\(1[0-8]\d{2}\)
见a demo on regex101.com。要展开名称部分,请在课程中包含其他字符(例如.
)
答案 1 :(得分:0)
这似乎有效:
(?<=\)[.;])\s*([^()]+\((?:19|20)\d\d\))
非贪婪量词仅影响比赛结束的位置,而不影响比赛的开始位置。您需要找到可以排除的内容,以防止它过早启动。在这种情况下,排除括号([^()]+
)似乎有效,但我无法保证它始终如此。名称如:
Bill S. Preston (Esq.) (1970)
......会使任务变得更加困难。