将西里尔文字转换为小写字母

问题描述 投票:0回答:1

我想将文本转换为

lowercase
,但它包含西里尔字符并保留
uppercase

RegEx 沙箱:https://regex101.com/r/GFuZYc/1

如何更改

replace
参数才能使其正常工作?

正文为:

WWWWWWWWW
wwwwwWWWWWWWwwwwwww
wwwwwwwwwwwwww
ЫЫЫЫЫЫЫЫЫЫЫ
ыыыыыыыыЫЫЫЫЫЫЫЫЫыыыыыыыы

找到:

(\w+|[ыЁёА-я]+)

更换:

\L$1

结果:

wwwwwwwww
wwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwww
ЫЫЫЫЫЫЫЫЫЫЫ
ыыыыыыыыЫЫЫЫЫЫЫЫЫыыыыыыыы
regex notepad++
1个回答
0
投票

记事本++:

默认情况下这是不可能的,因为 Notepad++ 没有内置支持直接在正则表达式中处理西里尔字符等 Unicode 字符。

Notepad++ 解决方法:

试试这个:

  1. 安装

    PythonScript
    插件。

  2. 创建PythonScript:安装PythonScript插件后,您可以通过转到

    Plugins > PythonScript > New Script
    来创建新的PythonScript。

  3. 为创建的脚本编写Python代码,该脚本处理所需的任务:

    editor.rereplace(r'(\w+|[ЁёА-я]+)', lambda m: m.group(0).lower()

  4. 运行脚本:前往

    Plugins > PythonScript > Scripts > YourScriptName
    运行脚本。

侧面信息:Javascript:

在Javascript中,您可以使用

toLocaleLowerCase()
,它可以正确处理Unicode字符。这将正确地将拉丁字符和西里尔字符转换为小写:

let text = "WWWWWWWWW\nwwwwwWWWWWWWwwwwwww\nwwwwwwwwwwwwww\nЫЫЫЫЫЫЫЫЫЫЫ\nыыыыыыыыЫЫЫЫЫЫЫЫЫыыыыыыыы";

let lowercaseText = text.toLocaleLowerCase();
console.log(lowercaseText);
© www.soinside.com 2019 - 2024. All rights reserved.