首页 > 解决方案 > UltraEdit / Unix 正则表达式。我想用名称替换所有行 + 空格 + 带有名称的数字 + # + 数字 SANTIAGO 80,00

问题描述

UltraEdit / Unix 正则表达式。我想用名称替换所有行 + 空格 + 用名称 + # + 数字的数字

示例:SANTIAGO 80,00 将替换为 SANTIAGO#80,00 并且所有行都将像这样进行

我可以在 Unix 表达式中找到我想要搜索的内容:[^t^b][0-9]

标签: ultraedit

解决方案


UltraEdit 具有三个正则表达式引擎。

使用带有标记的正则表达式的UltraEdit正则表达式引擎的第一个解决方案:

查找内容:^([^t ]^)^([0-9]^)
替换为:^1#^2

使用UnixPerl正则表达式引擎的第二个解决方案也使用标记组和反向引用执行与上述相同的操作:

查找内容:([\t ])([0-9])
替换为:\1#\2

这两种解决方案搜索水平制表符或普通空格后跟数字,标记这两个字符以在插入#它们之间的替换字符串中反向引用它们。

使用最强大的Perl正则表达式,也可以#在制表符/空格和数字之间插入,从而减少为撤消记录的数据。

查找内容:(?<=[\t ])(?=\d)
替换为:#

Perl正则表达式搜索字符串使用正向向后查找和正向向前查找来查找插入位置#

也可以使用Perl正则表达式引擎:

查找内容:[\t ]\K(?=\d)
替换为:#

这与上面的相同,但只需搜索一个制表符或空格并将 $0 的起始位置重置为空白字符之后的位置,而不是在检查下一个字符是否为数字之前使用正向预读。


推荐阅读