[英]How do I regex search in x and y for a, and only include the replacement of y if a was found in x?
我需要搜索更大的文本文件。
这是我正在搜索的示例。
recipes.addShaped("basemetals:adamantine_arrow", <basemetals:adamantine_arrow> * 4, [[<ore:nuggetAdamantine>], [<basemetals:adamantine_rod>], [<minecraft:feather>]]);
我需要在第一个参数中查找与特定部分匹配的行。
例如,上一行中的“ _arrow”部分。
并删除第一个参数中与“ _arrow”不匹配的所有内容。
所有这些人的论点都不尽相同。
上面一行中“贱金属:金刚烷”的位置也有不同的名称。
而且,由于进一步的论点都是不同的,所以只有在第一件事匹配时,我才能继续思考如何包括结尾。
编辑:最终目标是简化我的3k +行文本文件的排序。
基本,铁匠,木匠,厨师,化学家,工程师,农夫,珠宝商,法师,梅森,抄写员,裁缝
我认为您要尝试的是通过删除不符合设置条件的行来过滤文本文件。 我为此解决方案选择了Atom文本编辑器(因为我正在运行Windows操作系统,并且无法安装gedit,因此我想确保您有一个有效的示例)。
要只删除没有以_arrow
结尾的第一个参数的_arrow
,可以执行(?!recipes\\.addShaped\\("[^"]+_arrow")recipes.+\\r?\\n?
并且不进行任何替换。
注意:Atom的低正则表达式支持使此任务变得更加困难。 在更受支持的环境中,我的答案可能是^recipes\\.addShaped("[^"]+(?<!_arrow)").+\\r?\\n?
(使用多行模式)。
另外,请阅读“有人回答我的问题该怎么办?” 。
正则表达式解释:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.