我想将文本转换为
lowercase
,但它包含西里尔字符并保留 uppercase
。
RegEx 沙箱:https://regex101.com/r/GFuZYc/1
如何更改
replace
参数才能使其正常工作?
正文为:
WWWWWWWWW
wwwwwWWWWWWWwwwwwww
wwwwwwwwwwwwww
ЫЫЫЫЫЫЫЫЫЫЫ
ыыыыыыыыЫЫЫЫЫЫЫЫЫыыыыыыыы
找到:
(\w+|[ыЁёА-я]+)
更换:
\L$1
结果:
wwwwwwwww
wwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwww
ЫЫЫЫЫЫЫЫЫЫЫ
ыыыыыыыыЫЫЫЫЫЫЫЫЫыыыыыыыы
记事本++:
默认情况下这是不可能的,因为 Notepad++ 没有内置支持直接在正则表达式中处理西里尔字符等 Unicode 字符。
Notepad++ 解决方法:
试试这个:
安装
PythonScript
插件。
创建PythonScript:安装PythonScript插件后,您可以通过转到
Plugins > PythonScript > New Script
来创建新的PythonScript。
为创建的脚本编写Python代码,该脚本处理所需的任务:
editor.rereplace(r'(\w+|[ЁёА-я]+)', lambda m: m.group(0).lower()
)
运行脚本:前往
Plugins > PythonScript > Scripts > YourScriptName
运行脚本。
侧面信息:Javascript:
在Javascript中,您可以使用
toLocaleLowerCase()
,它可以正确处理Unicode字符。这将正确地将拉丁字符和西里尔字符转换为小写:
let text = "WWWWWWWWW\nwwwwwWWWWWWWwwwwwww\nwwwwwwwwwwwwww\nЫЫЫЫЫЫЫЫЫЫЫ\nыыыыыыыыЫЫЫЫЫЫЫЫЫыыыыыыыы";
let lowercaseText = text.toLocaleLowerCase();
console.log(lowercaseText);