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]
    匹配0到9之间的任何ASCII值(所有数字)
  • X+
    匹配一个或多个X
  • [0-9]+
    匹配1个或多个[0-9](一串数字)
  • \。
    匹配一个文字句点(需要用\因为转义。表示其他内容)
  • \.[0-9]+
    匹配一个小数点,后跟一个数字字符串
  • (?:X)
    是一个与X匹配的非捕获组-它只是一种将事物组合在一起的方法
  • (“:\.[0-9]+)
    是一个包含小数点和一串数字的组
  • X?
    匹配X中的0或1(使X可选)
  • (“:\.[0-9]+)?
    是一个可选组,包含一个小数点和一个数字字符串
  • [2-9]
    匹配2到9之间的任何ASCII值
  • [2-9](“:\.[0-9]+)?
    匹配2和9之间的任何整数或浮点数。999999
  • [2-9](“:\.[0-9]+)?
    (带前导空格)匹配2到9之间的任何整数或浮点数。999999。。。它有一个引导空间
  • [2-9](“:\.[0-9]+)?$
    (带前导空格)匹配任何介于2和9之间的整数或浮点数。999999…前导空格位于行尾
  • [1-9]
    匹配1到9之间的任何ASCII值
  • [1-9][0-9]+
    匹配10以上的任何整数
  • [1-9][0-9]+(“:\.[0-9]+)?
    匹配从10开始的任何整数或浮点数
  • [1-9][0-9]+(“:\.[0-9]+)?
    (带前导空格)将10到10之间的任何整数或浮点数与前导空格匹配
  • [1-9][0-9]+(“:\.[0-9]+)?$
    (带前导空格)将10到10之间的任何整数或浮点数与行尾的前导空格匹配
  • X | Y
    匹配X或Y
  • [2-9](“:\[0-9]+)?$[1-9][0-9]+(“:\[0-9]+)?$
    (带前导空格)匹配2到9之间的任何整数或浮点数。999999。。。或者从10开始,在一行的末尾有一个前导空格

谢谢您的关心@Jerry@JerryJeremiah:和if number如果z中的数字是浮点数而不是整数 ?