如何将所有字符串替换为Notepad ++中每个字符串中包含的数字?

 上海蓝色的梦在哪 发布于 2023-02-13 19:25

我正在尝试使用以下模式查找所有值:

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

并将其替换为范围内的值.

我正在使用以下正则表达式来查找模式:

.*"\d+"

我怎样才能更换?

3 个回答
  • 更换 (.*")\d+(")

    $1x$2

    x你的"范围内的价值" 在哪里?

    2023-02-13 19:27 回答
  • psxls给出了一个很好的答案,但我认为我的Notepad ++版本略有不同,所以$(美元符号)捕获不起作用.

    我有Notepad ++ v.5.9.3,以下是如何完成任务的:

    搜索模式:value = \"([0-9]*)\" 并替换为:\ 1(无论你想在该捕获组周围做什么)

    防爆.用方括号环绕

    [\ 1] - > 会产生值="[4]"

    2023-02-13 19:27 回答
  • 在Notepad ++中替换,按Ctrl+ H打开"替换"菜单.

    然后,如果您选中"正则表达式"按钮,并且您希望替换中使用匹配模式的一部分,则必须使用"捕获组"(在谷歌上阅读更多内容).例如,假设您要匹配以下每一行

    value="4"
    value="403"
    value="200"
    value="201"
    value="116"
    value="15"
    

    使用.*"\d+"模式,只想保留数字.然后,您可以使用一个捕获组在匹配模式,使用括号(),这样的:.*"(\d+)".因此,现在在您的替换中,您只需编写$1,其中$ 1引用第一个捕获组的值,并返回每个成功匹配的数字.例如(.*)="(\d+)",如果您有两个捕获组,$1则会返回该字符串value$2返回该数字.

    所以通过使用:

    找: .*"(\d+)"

    更换: $1

    它会回报你

    4
    403
    200
    201
    116
    15
    

    请注意,有许多替代和更好的方法来匹配上述模式.例如,模式value="([0-9]+)"会更好,因为它更具体,您将确保它只匹配这些行.甚至可以在不使用捕获组的情况下进行替换,但这是一个稍微高级的主题,所以我现在就把它留下:)

    2023-02-13 19:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有