首页 > 解决方案 > 正则表达式在word中查找大写字符

问题描述

我正在使用正则表达式对文本文件进行文本格式化。我找到

\b\w*[А-Ш]{2,}\w* 

将找到所有大部分是大写的单词并执行它。但是我怎样才能找到单词中有大写的单词,但在新句子中却找不到呢?

下面的示例文本:

ТИКВЕШ – акумулациона ХЦ (дел од повеЌенаменскиот хидросистем) во долниот тек на Црна Река, недалеку од Кавадарци. Првите два агрегата се во погон од 1968, а третиот и четвртиот од 1981 г. ТурбИните се од типот францис. Вкупната инсталирана моЌност изнесува 116 МЊ. Во периодот 1992-2003 г. просечното годиШно проиЗводство изнесувало 135,1 ГЊх, а најголемото 289,9 ЛИТ: 50 години македонско електрОстопанство, Скопје, 1995; Ј.П. „Електростопанство на Македонија#, Скопје, 1999; Електростопанство на Македонија, годиШен извеШтај, 2003; Др. Р. „ТИКВЕШ# (Кавадарци, 30. И ‡ 31. ВИИ 1942) ‡ весник на

标签: regexregex-lookarounds

解决方案


这应该适合你

(?<!\. |^|\pL)\pL*[А-Я]+\pL*

演示

(?<!\. |^|\pL)是消极的回顾。.只有当您的字符串前面没有空格,或者它是行首时,它才匹配。我还添加了一个案例,\pL因为由于某种原因\b似乎不适用于其他语言。

\pL*匹配任何语言的 0 个或多个字符

[А-Я]+匹配一个或多个大写西里尔字母

\pL*那么我们当然会再次匹配来自任何语言的 0 个或多个字符

PS 我对西里尔字母不是很熟悉,所以如果有什么不对劲的地方请告诉我。


推荐阅读