【问题标题】:Notepad++ - Find first instance of "," in one line with "find and replace" functionNotepad ++ - 使用“查找和替换”功能在一行中查找“,”的第一个实例
【发布时间】:2018-05-24 04:40:42
【问题描述】:

我想在 Notepad++ 行中找到“,”的第一个实例。我觉得这可能是一个简单的答案,但我已经尝试找到解决方案很长时间了。

我有以下要替换的示例数据:

K8.transform.position = new Vector3 (-1249.966,-0.055,1250.139)*ObjectScale ; K1.transform.Rotate(0.000000,0.000000,0.000000) ;

用这个:

K8.transform.position = new Vector3 (-1249.966f,-0.055f,1250.139f)*ObjectScale ; K1.transform.Rotate(0.000000f,0.000000f,0.000000f) ;

唯一的区别是所有值最后都有一个额外的“f”。我尝试过类似于

的代码
Vector3 \(.*,

开始寻找第一个值。但它没有找到第一个“,”,而是每行中的最后一个, see this picture.

正如我所说,我觉得这可能是一个简单的答案,但我找不到解决方案。

【问题讨论】:

    标签: search replace notepad++


    【解决方案1】:

    我建议你搜索一个点后跟一个或多个数字:

    \.(\d+)
    

    然后用找到的文本替换它并附加f:

    \.\1f
    

    这里有详细链接如何使用Notepad++ Regex

    【讨论】:

      【解决方案2】:
      • Ctrl+H
      • 查找内容:(?<=\d)(?=[,)])
      • 替换为:f
      • 检查环绕
      • 检查正则表达式
      • 全部替换

      说明:

      (?<=\d)  : lookbehind, make sure we have a digit before current position
      (?=[,)]) : lookahead, make sure we have a comma or a close parenthesis after current position
      

      给定示例的结果:

      K8.transform.position = new Vector3 (-1249.966f,-0.055f,1250.139f)*ObjectScale ; K1.transform.Rotate(0.000000f,0.000000f,0.000000f) ;
      

      【讨论】:

      • 我对此进行了测试,但没有成功。我得到一个“^ 零长度匹配”响应,它不会对文本进行任何更改。但 TmTron 的建议奏效了,还是谢谢!
      • @StrawCap:奇怪,你用的是什么版本?这里是7.5.1
      • 我也用7.5.1,奇怪。
      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 2022-06-15
      • 2013-11-07
      • 2017-10-08
      • 2020-07-02
      • 2021-05-26
      相关资源
      最近更新 更多