正则表达式更改为句首字母大写正则表达式更改为句首字母大写(Regex to change to se

2019-05-13 18:06发布

我用记事本++做一些文字更换在5453行的语言文件。 该文件的行的格式为:

variable.name = Variable Value Over Here, that''s for sure, Really

双撇号是故意的。

我需要的值转换为句首字母大写,除非是在正确的并且应保持大写的单词“在这里”和“真”。 正如你所看到的,值范围内的情况下通常是混合的开始。

我已经为此工作了一小会儿。 所有到目前为止,我所得到的是:

 (. )([A-Z])(.+)

这似乎至少选择合适的字符串。 更换一块就是我挣扎。

Answer 1:

正则表达式替换不能在比赛执行功能(如大小写)。 你得脚本,例如PHP或JavaScript。

更新日期:见乔纳斯的回答 。

我给自己建所谓的Web页面的文本工具做那种事:

  • 粘贴文本
  • 进入“查找,正则表达式和替换”(或按下Ctrl + Shift + F)
  • 输入您正则表达式(我会^(.*?\=\s*\w)(.*)$
  • 勾选“^ $匹配行限制”选项
  • 选择“应用JS功能匹配”
  • 添加参数(第一个是匹配,则子图样),这里s, start, rest
  • 改变return语句return start + rest.toLowerCase();

在文本区域的最终功能如下:

return function (s, start, rest) {
     return start + rest.toLowerCase();
};

也许添加一些代码来利用一些话,如“真”和“这里”。



Answer 2:

Find:    (. )([A-Z])(.+)
Replace: \1\U\2\L\3

在记事本++ 6.0或更高(附带内置PCRE支持)。



Answer 3:

在记事本+ +,你可以使用一个名为PythonScript插件来完成这项工作。 如果你安装了插件,创建像这样一个新的脚本:

然后你可以使用下面的脚本,取代了正则表达式和函数变量,你认为合适:

import re

#change these
regex = r"[a-z]+sym"
function = str.upper

def perLine(line, num, total):
for match in re.finditer(regex, line):
    if match:
        s, e = match.start(), match.end()
        line = line[:s] + function(line[s:e]) + line[e:]
        editor.replaceWholeLine(num, line)

editor.forEachLine(perLine)

该特定示例中的工作方式是找到所有的比赛中一个特定的行,然后将每一个函数的每个匹配。 如果你需要多行支持,Python的脚本“Conext,帮助”说明,包括“编辑器”对象下定义pymlsearch / pymlreplace功能所提供的所有功能。

当你准备要运行脚本,去你想让它先运行该文件,然后进入“脚本>”在Python脚本菜单和运行你的。

注意:虽然您可能能够使用记事本+ +的撤销功能,如果你陷入困境,那可能是一个好主意,把文本在另一个文件中第一次以验证它的工作原理。

PS可以“找到”和“标记”使用记事本++的正则表达式的每次出现内置查找对话框,如果你能选择他们都可以使用TextFX的‘Characters->大写的’功能对这个特定的问题,但我也不太清楚如何从标记或找到的文本选定文本去。 但是,我以为我会张贴此万一真有人...

编辑:在记事本++ 6.0或更高版本,可以使用“PCRE(Perl兼容的正则表达式)查找/替换”(来源: http://sourceforge.net/apps/mediawiki/notepad-plus/?title=Regular_Expressions )所以这可能已经使用像一个正则表达式来解决(. )([Az])(.+)与像的替换参数\1\U\2\3



Answer 4:

提问脑子里想的非常具体的情况。 作为一般的“更改为句首字母大写”在记事本++第一正则表达式的建议没有正常工作对我来说。 虽然并不完美,这里是这是我的目的,在原大的改进版本扭捏:

find:    ([\.\r\n][ ]*)([A-Za-z\r])([^\.^\r^\n]+) 
replace: \1\U\2\L\3

你仍然有小写的名词,姓名,日期,国家等,但一个很好的拼写检查有问题可以与帮助。



文章来源: Regex to change to sentence case