C++ 正则表达式将斜杠替换为反斜杠内#包括双引号
我想用反斜杠替换斜杠,包括这样的双引号 之前C++ 正则表达式将斜杠替换为反斜杠内#包括双引号,c++,regex,C++,Regex,我想用反斜杠替换斜杠,包括这样的双引号 之前 #include "Monster.h" #include "ItemManager.h" #include "Skil/Server/Manager/Skillmanager.h" #include "Quest/QuestEvent.h" #include "AES/AES.h" #include "Trigger/Timer.h" // Timer Class CTimer::CTimer() { printf("Minute / S
#include "Monster.h"
#include "ItemManager.h"
#include "Skil/Server/Manager/Skillmanager.h"
#include "Quest/QuestEvent.h"
#include "AES/AES.h"
#include "Trigger/Timer.h"
// Timer Class
CTimer::CTimer()
{
printf("Minute / Second");
printf("\t%2d:%2d\n", tMinute, tSecond);
}
之后
#include "Monster.h"
#include "ItemManager.h"
#include "Skil\Server\Manager\Skillmanager.h"
#include "Quest\QuestEvent.h"
#include "AES\AES.h"
#include "Trigger\Timer.h"
// Timer Class
CTimer::CTimer()
{
printf("Minute / Second");
printf("\t%2d:%2d\n", tMinute, tSecond);
}
我想替换#include标记中的斜杠,而不是替换printf标记和comment标记中的斜杠
我用来搜索的正则表达式是什么
谢谢。 你的代码是C++,但是你还没有说过如何替换斜杠:这可以在IDE中,有脚本,或者其他工具。 下面是一个解决方案,它将在正则表达式模式下使用搜索和替换来运行Notepad++(已测试) 搜索:
(?m)(?:^#include\s*“|\G)[^/”]*\K/
替换:\
说明:
(?m)(?:^#include\s*"|\G)[^/"]*\K/
- 将这些选项用于整个正则表达式
(?m)
- ^$&换行符处匹配
m
- ^$&换行符处匹配
- 匹配下面的正则表达式
(?:^#include\s*“|\G)
- 匹配此备选方案(仅当此备选方案失败时才尝试下一个备选方案)
^#include\s*“
- 在行首(字符串开头或换行符之后)断言位置(换行)
^
- 匹配字符串“#include”(区分大小写)
#include
- 匹配一个“空白字符”(ASCII空格、制表符、换行符、回车符、垂直制表符、换行符)的单个字符
\s*
- 在零次和无限次之间,尽可能多次,根据需要回馈(贪婪)
*
- 在零次和无限次之间,尽可能多次,根据需要回馈(贪婪)
- 按字面意思匹配字符“”“
- 在行首(字符串开头或换行符之后)断言位置(换行)
- 或者匹配此选项(如果此选项不匹配,则整个组将失败)
\G
- 在上一次匹配结束时断言位置(第一次尝试的字符串开始)
\G
- 在上一次匹配结束时断言位置(第一次尝试的字符串开始)
- 匹配此备选方案(仅当此备选方案失败时才尝试下一个备选方案)
- 匹配列表中不存在的任何单个字符“/”
[^/“]*
- 在零次和无限次之间,尽可能多次,根据需要回馈(贪婪)
*
- 在零次和无限次之间,尽可能多次,根据需要回馈(贪婪)
- 使文本在整个正则表达式匹配中保持匹配
\K
- 按字面意思匹配字符“/”
/
/
应该可以在Windows上运行。我知道这可以在Windows上运行,但我想清理我的源代码,我喜欢使用反斜杠而不是斜杠。谢谢:)这种“清理”使您的代码不可移植。所以我称之为肮脏。你已经试过什么了?在这里你甚至不需要正则表达式,“字符串以foo开头”可以很便宜地完成。对不起,我喜欢用反斜杠而不是斜杠。这是我的编码风格。您可以看到,在Windows中,Windows中的所有路径都使用反斜杠,例如cmd、explorer。我想用和Windows一样的。谢谢。:)@StdAfx“比如cmd、explorer”,这与在#include
语句中出现反斜杠有很大区别,我绝对不建议使用它们。如果这是你的编码风格(或其他风格),那就是糟糕的风格。谢谢你的帮助。这是工作。@StdAfx非常欢迎您,很高兴听到它为您工作。:)