2017-05-05 51 views
0

我想,以取代记事本+ +以下内容内支架更换内容与给定内容的记事本++

{\abc {a}}, {\abc {c}}, {\def {a}} 
{\agh {a}}, {\abc {c}}, {\def {a}} 
{\def {a}} {\abc {a}}, {\abc {c}} 

使得结果如下:

{\def {a}} 
{\def {a}} 
{\def {a}} 

我知道里面怎么替换所有内容支架与\{.*\}在常规模式下,但我不知道如何替换给定的内容。在这种情况下,通常是“\ abc”或“\ a *”。 我们是否有过滤相似字符的最佳方法,例如{\ abc {a}},{\ agh {a}},{\ abc {c}}具有相同的部分“{\ a”并且只保留与以上? 请帮我解决这个问题。 谢谢!

+0

做表达式匹配匹配吗?或者在它们中有'\ def'的制动器?每一件事都在一条线上吗?请添加一些预期结果的测试用例。 – Toto

+0

我刚编辑我的问题。谢谢 – greenworld

+0

因此,您只想从字面上保留'{\ def {a}}'并删除其他所有内容?如果某行不包含“{\ def {a}}”,例如:{\ abc {a}},{\ abc {c}}'?你想删除整行包括换行符或保持换行吗?它实际上是'\ def'和'a'还是可以是'\ dab'或\ dxyz''? – Toto

回答

0

你可以尝试\{\\a[^{]*\{[^{]*\}\},如果你有始终为1级嵌套的括号

只是两点:

  • 要与任何内容使用\{[^{]*\{[^{]*\}\}代替\{.*\}更换支架,否则整个表达式{\abc {a}}, {\abc {c}}, {\def {a}}会比赛。
  • \abc\a*与像\\a\aaaaaaaa

检查https://en.wikipedia.org/wiki/Regular_expression了解更多信息要保持百达最后括号

+0

谢谢,但在这种情况下,{\ abc},{\ aaa},{\ aac},{\ def} 这是最好的方法只保留{\ def} – greenworld

+0

我刚编辑我的问题,请帮助我解决! – greenworld

+0

我编辑过,但你应该尝试理解语法以便能够自己做 – Matt