notepad++ - 在多行中查找任何值
问题描述
我需要找到指定的多行文本后跟任何值并将该值替换为 0。由于未知原因,我无法创建选择任何值的查询。这是我编辑的文件:
befriend=
{
id="RUS"
value=400
}
通过查询befriend=\r\n\t\t{\r\n\t\t\tid="RUS"
我可以找到它,但不能更改为befriend=\r\n\t\t{\r\n\t\t\tid="RUS"r\n\t\t\tvalue=.*
可悲的是,我不知道以后如何替换该值,因为可能有不同数量的数字(例如:value=0;value=20;value=200)
解决方案
选项 1:带有捕获组的正则表达式
选择“正则表达式”搜索模式。然后查询(befriend=\r\n\t\t{\r\n\t\t\tid="RUS"\r\n\t\t\tvalue=)[0-9]*
并填写\10
“替换为:”字段。
正则表达式中的括号创建一个捕获组,随后可以用 \1 引用该组(因为它是第一个,在这种情况下仅是捕获组)。在替换字段中使用 \1 会导致括号中的表达式匹配的整个部分被再次填充。不属于捕获组的正则表达式的匹配部分([0-9]*、任何连续的数字序列或空字符串)将被丢弃,而代之以填充您的“0”替换值。
选项 2:带有后视功能的正则表达式
也许更优雅的是,使用(?<=befriend=\r\n\t\t{\r\n\t\t\tid="RUS"\r\n\t\t\tvalue=)[0-9]*
并将您的替换值放在“替换为:”字段中。这(?<=...)
是一个“lookbehind”,它只会检查括号中的表达式是否在下一个之前,而不会将其存储为匹配的一部分。
Lookbehinds 有一个限制,它们通常不允许检查任何正则表达式,但是对于像这种情况下的字符串常量,它们很好。
推荐阅读
- typescript - 使用对象索引在打字稿中定义可能的类型
- vue.js - Vuetify Mobile 纵向填充整个屏幕
- python - 在python中使用单链表实现队列中的AttributeError
- python - Python - 如何为运行命令创建单词和数字的组合?
- c# - 异常抛出:实体数据模型对象实例化时 C# Windows 服务中的“System.IO.FileNotFoundException”
- amazon-web-services - 将多个文件上传到 Terraform 中的多个 S3 存储桶
- c# - 我怎样才能制造出能够统一摧毁所有被超越平台的驱逐舰?
- python - Pandas 仅将 1 个表导出到 Excel 但打印所有
- python - 为什么有些 CPython 的 lib 模块在 C 和 Python 中都有实现?
- power-automate - SharePoint 列表项 → 联系人 → 联系人列表