我想立即删除文本中小写字母之前的所有连字符,但是我仍然希望在其余上下文(大写,数字,空格之前)中保留连字符。我试过了
查找:pair<char, int> light(string& s) {
pair<char, int> result;
int start = 0;
sort(begin(s), end(s));
for(auto finish = s.find_first_not_of(s.front()); finish != string::npos; start = finish, finish = s.find_first_not_of(s[start], start)) if(const int second = finish - start; second > result.second) result = make_pair(s[start], second);
if(const int second = size(s) - start; second > result.second) result = make_pair(s[start], second);
return result;
}
(有效)
更换?
我想删除连字符,但显然应该保留字母。
我正在使用记事本++。
答案 0 :(得分:2)
您正在寻找-(?=[a-z])
。
答案 1 :(得分:0)
使用捕获组()
捕获-
之后的小写字母,并将其用作替换值。
在“替换”标签上:
查找内容: -([a-z])
替换为: \1
匹配情况:已选中
正则表达式:已选择
\1
告诉Notepad ++将捕获的模式替换为第一个捕获的组,该组将是连字符后的字母。