我有一个C++源文件,它使用getMemberName()形式的函数返回成员数据。相反,我想使用memberName()。可记事本++将字符串匹配正则表达式转换为小写?
为了匹配需要更改函数名的情况下,我使用下面的正则表达式:
(\s+)get([A-Z])
的问题是,我不知道如何更换的\ 2实例与它的小写版本。有没有人有任何想法,或者我应该写一个Perl脚本?
感谢,
扎克
我有一个C++源文件,它使用getMemberName()形式的函数返回成员数据。相反,我想使用memberName()。可记事本++将字符串匹配正则表达式转换为小写?
为了匹配需要更改函数名的情况下,我使用下面的正则表达式:
(\s+)get([A-Z])
的问题是,我不知道如何更换的\ 2实例与它的小写版本。有没有人有任何想法,或者我应该写一个Perl脚本?
感谢,
扎克
注意:此功能通过\L\1\E
正则表达式替换模式在Notepad ++中可用。
\L
\2
小写用于匹配小写脱落基团2\E
,如果你有任何进一步的替换。见Novices answer和notepad++ wiki for details
,没有像往常一样,另一种方式。这可以在Notepad ++中使用PythonScript插件以及任何超出记事本++可用范围的内容来完成,而无需编写完整的插件。
首先,安装在记事本++
插件>插件管理器>显示插件管理器
检查“的Python脚本”,在“可用”选项卡,然后单击“安装”,然后重新启动记事本++
的PythonScript插件
然后设置一个Python脚本
PL ugins>的Python脚本>新建脚本
给它一个有用的名称
添加以下代码
# Start a sequence of actions that is undone and redone as a unit. May be nested.
editor.beginUndoAction()
# trimFunctionName - for editor.pysearch
def trimFunctionName(index, match):
editor.pyreplace(match.re, match.group(1) + match.group(2).lower(), 1, 0, index, index)
# I couldn't work out how to jam the .lower call into a editor.pyreplace()
# so used editor.pysearch() to check the regex and run a function with match
# information
editor.pysearch(r'(\s+)get([A-Z])', trimFunctionName)
# end the undo sequence
editor.endUndoAction()
然后运行该脚本。
插件>的Python脚本>脚本>“yourScript”
,您可以提示用户输入或做其他事情无数以scintilla与所提供的对象
是的,你应该写一个Perl脚本。内置的正则表达式引擎功能不足以处理这样的事情。
这是一个非常基本的HTML标签转换器(小写):
左键点击搜索 - >更换(或CTRL H)。
输入相应的字段如下:
查找内容:<([^>]+?)>
替换:<\L\1>
左键点击全部替换。
完成
谢谢,我需要更改为大写,并使用\ U \ 1 – appmaster 2015-03-17 20:08:30
虽然这可以工作,就应该不再是公认的答案,因为有一个内置的设备在N ++的发现改变的情况下/替换功能。 (请参阅下面的新手答案,虽然这可能不是最初发布这个答案时可能的。) – HitScan 2015-11-16 18:55:44
维基的历史可以追溯到那个时候,所以它可能已经存在。我已经添加了Novices详细信息的更新。 – Matt 2015-11-17 06:30:41