正则表达式 - 匹配不包含“半字”的字符串

时间:2011-08-04 11:56:46

标签: regex notepad++

我尝试为此制作正则表达式语法,但我失败了。

我有2个变量

PlayerInfo [playerid] [pLevel] 和 字符[playerid]

我想只捕捉第二个变量,我的意思是只有世界上不包含PlayerInfo,但是币子[playerid]

"(\S+)\[playerid\]" cath两个单词和(\S+[^PlayerInfo])\[playerid\]跳过一些变量 - 它们包含p,l,a,y ......

我需要在记事本++中替换所有变量,如 Text [playerid] 到ExClass [playerid] [Text]

4 个答案:

答案 0 :(得分:1)

夫妻可行的解决方案。

列出项目

  1. 记事本有一个名为python script.的插件,从那里运行正则表达式 提供完整的正则表达式功能,无论如何,python版本,以及很多 除此之外的巨大潜力。我使用online python regex tester来帮忙。
  2. RegRexReplace插件有助于在Notepad ++中创建正则表达式插件,所以当你遇到限制时,你会发现更快。
  3. 当然默认为您的备用编辑器(我假设您有 一个?)或者这个在线regex tool绝对是惊人的。您 也可以在线对文本执行操作。
  4. (我试着为你建立一个正则表达式,但我对你要找的东西有点迷茫。除非Ivo Abeloos得到它。如果你仍然很短,可能是一个代码示例以及显示的值?) 祝你好运!

答案 1 :(得分:1)

自从v6以来,Notepad ++似乎支持负面的后视。

答案 2 :(得分:0)

尝试使用负面的外观。

(?<!PlayerInfo)\[playerid\]

编辑:遗憾的是,notepad ++不支持负面反馈。

我尝试根据以下天真的想法制定解决方法:

([^ O] |。[^ F] O)[playerid]

但是这个表达式也不起作用。 Notepad ++似乎在替代运算符中失败。因此答案是:不可能完全按照自己的意愿行事。尝试以其他方式解决问题或使用替代工具。

答案 3 :(得分:0)

在记事本++中,您可以尝试将(.+)\[(.+)\]替换为ExClass\[\2\]\[\1\]