Replace 在记事本+;中查找并替换小于或大于某个值的数字+;
我有一个关于替换文本文件中某个值的问题 我的文本文件包含:Replace 在记事本+;中查找并替换小于或大于某个值的数字+;,replace,find,conditional,text-files,notepad++,Replace,Find,Conditional,Text Files,Notepad++,我有一个关于替换文本文件中某个值的问题 我的文本文件包含: x y z 979999.088252 994114.506680 -1 979999.053624 995441.988245 -4 979999.495066 905496.233609 -3 979999.380029 905467.292380 0 979999.338490 905554.964370
x y z
979999.088252 994114.506680 -1
979999.053624 995441.988245 -4
979999.495066 905496.233609 -3
979999.380029 905467.292380 0
979999.338490 905554.964370 5
979999.910165 905624.191735 2
我想用值2(z=2)替换大于2(z>2)的值
我正在使用记事本++
有人有主意吗
感谢您在此之前在搜索和替换中选择正则表达式选项,并使用
[3-9]$|[1-9][0-9][0-9]*$
作为查找内容文本,使用2
作为替换文本(两者都有前导空格)
“查找内容”文本所说的是:在行尾前的空格后跟一个介于3和9之间的一位数,或者在行尾前的空格后跟一个两位数或更多位数
它与减号不匹配,因此它们不会被替换。它与小数点不匹配(我不知道你是否需要)。数字前面必须加空格(如果使用制表符,则需要更改)。数字后面不能有空格/制表符,所以必须在行的末尾
好的,回答评论中的问题。如果数据包含带小数点的浮点值,并且您希望将任何大于2的值更改为2,则可以使用此[2-9](?:\.[0-9]+)?$\[1-9][0-9]+(?:\.[0-9]+)?$
作为查找内容文本,使用2
替换为文本(两者都有前导空格)
这种方法可能需要一些解释
匹配0到9之间的任何ASCII值(所有数字)[0-9]
匹配一个或多个XX+
匹配1个或多个[0-9](一串数字)[0-9]+
匹配一个文字句点(需要用\因为转义。表示其他内容)\。
匹配一个小数点,后跟一个数字字符串\.[0-9]+
是一个与X匹配的非捕获组-它只是一种将事物组合在一起的方法(?:X)
是一个包含小数点和一串数字的组(“:\.[0-9]+)
匹配X中的0或1(使X可选)X?
是一个可选组,包含一个小数点和一个数字字符串(“:\.[0-9]+)?
匹配2到9之间的任何ASCII值[2-9]
匹配2和9之间的任何整数或浮点数。999999[2-9](“:\.[0-9]+)?
(带前导空格)匹配2到9之间的任何整数或浮点数。999999。。。它有一个引导空间[2-9](“:\.[0-9]+)?
(带前导空格)匹配任何介于2和9之间的整数或浮点数。999999…前导空格位于行尾[2-9](“:\.[0-9]+)?$
匹配1到9之间的任何ASCII值[1-9]
匹配10以上的任何整数[1-9][0-9]+
匹配从10开始的任何整数或浮点数[1-9][0-9]+(“:\.[0-9]+)?
(带前导空格)将10到10之间的任何整数或浮点数与前导空格匹配[1-9][0-9]+(“:\.[0-9]+)?
(带前导空格)将10到10之间的任何整数或浮点数与行尾的前导空格匹配[1-9][0-9]+(“:\.[0-9]+)?$
匹配X或YX | Y
(带前导空格)匹配2到9之间的任何整数或浮点数。999999。。。或者从10开始,在一行的末尾有一个前导空格[2-9](“:\[0-9]+)?$[1-9][0-9]+(“:\[0-9]+)?$