【问题标题】:regex find uppercase character in word正则表达式在word中查找大写字符
【发布时间】:2018-08-24 19:17:44
【问题描述】:

我正在使用正则表达式对文本文件进行文本格式化。 我发现了

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

会找到所有大部分是大写的单词并做到这一点。 但是我怎样才能找到单词中包含大写的单词,但在它的新句子中却找不到呢?

下面的示例文本:

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

【问题讨论】:

  • 是 C# 吗? Python? JavaScript?

标签: regex regex-lookarounds


【解决方案1】:

这应该适合你

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

Demo

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

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

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

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

附:我对西里尔字母不是很熟悉,所以如果看起来不对,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多