Shell之${BASH_REMATCH}

Shell之${BASH_REMATCH}Shell 之 BASH REMATCH N 双目运算符 它和 以及 具有同样的优先级 如果使用了它 则其右边的字符串就被认为是一个扩展的正则表达式来匹配 如果字符串和模式匹配 则返回值是 0 否则返回 1 如果这个正则表达式有语法错误 则整个条件表达式的返回值是 2 如果打开了 shell 的 nocasematch 选项则匹配时不考虑字母的大小写 模式的任何部分都可以被引用以强制把其当作字符串来匹配 由正则表达式中括号里面的子模式匹配的字符串被保存在数组变量 BASH REMATCH 中 BASH REMA

Shell之${BASH_REMATCH[N]}

双目运算符=~它和==以及!=具有同样的优先级。如果使用了它,则其右边的字符串就被认为是一个扩展的正则表达式来匹配如果字符串和模式匹配,则返回值是0,否则返回1。如果这个正则表达式有语法错误,则整个条件表达式的返回值是2。如果打开了shell的nocasematch 选项则匹配时不考虑字母的大小写。模式的任何部分都可以被引用以强制把其当作字符串来匹配。由正则表达式中括号里面的子模式匹配的字符串被保存在数组变量BASH_REMATCH 中。BASH_REMATCH 中下标为0的元素是字符串中与整个正则表达式匹配的部分。BASH_REMATCH 中下标为n的元素是字符串中与第n 个括号里面的子模式匹配的部分

#!/bin/bash info="cxsxafasdf,id=55,name=lkw,sex=man,oc=game" if [[ $info =~ as.*id=([0-9]+),name=([a-z]+),sex=(.*) ]]; then echo "this is 0: ${ 
    BASH_REMATCH[0]}" echo "this is 1: ${ 
    BASH_REMATCH[1]}" echo "this is 2: ${ 
    BASH_REMATCH[2]}" echo "this is 3: ${ 
    BASH_REMATCH[3]}" fi ================================= [root@init-mysql ~]# bash source.sh  this is 0: asdf,id=55,name=lkw,sex=man,oc=game this is 1: 55 this is 2: lkw this is 3: man,oc=game 通过上面可以发现,${ 
   BASH_REMATCH}有点和sed中的\1\2类似 ${ 
   BASH_REMATCH[0]}:代表了if中整个匹配到的字符串 后边BASH_REMATCH 中下标为n的元素是字符串中与第n 个括号里面的子模式匹配的部分 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217702.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:57
下一篇 2026年3月18日 上午8:58


相关推荐

  • debounce实现 js_聊聊lodash的debounce实现

    debounce实现 js_聊聊lodash的debounce实现本文同步自我的Blog前段时间团队内部搞了一个代码训练营,大家组织在一起实现lodash的throttle和debounce,实现起来觉得并不麻烦,但是最后和官方的一对比,发现功能的实现上还是有差距的,为了寻找我的问题,把官方源码阅读了一遍,本文是我阅读完成后的一篇总结。本文只会列出比较核心部分的代码和注释,如果对全部的源码有兴趣的欢迎直接看我的repo:什么是throttle和debo…

    2022年6月20日
    49
  • c++中 override用法

    c++中 override用法描述 override 保留字表示当前函数重写了基类的虚函数 目的 1 在函数比较多的情况下可以提示读者某个函数重写了基类虚函数 表示这个虚函数是从基类继承 不是派生类自己定义的 2 强制编译器检查某个函数是否重写基类虚函数 如果没有则报错 用法 在类的成员函数参数列表后面添加该关键字既可 例子 classBase virtualvoidf classDeriv

    2026年3月16日
    2
  • 知识库 平台_平台开发

    知识库 平台_平台开发入园这么些天了,今天搭建了一套知识库系统,使用效果还不错,分享一些过程经验。搭建准备:软件系统:WCP4.3免费版(免费开源,支持Windows,使用简单,有傻瓜式一键安装包-win平台)服务

    2022年8月4日
    7
  • pycharm运行报错_pycharm failed to create virtual

    pycharm运行报错_pycharm failed to create virtual   

    2022年8月26日
    12
  • STEAM账号被盗(绑定QQ邮箱)的找回方法以及背后操作原理解析「建议收藏」

    STEAM账号被盗(绑定QQ邮箱)的找回方法以及背后操作原理解析「建议收藏」看到这篇博客的,想必十有八九都是刚刚发现STEAM账号被盗的!针对STEAM密码被修改、绑定邮箱被修改、申诉“此客服案件已关闭”、STEAM申诉超过2天没有结果、当天打开杀毒软件警告过的高危软件后被盗号的我觉得会有用!(我是Murphyer今天是19年4月20日,从上次被盗号到现在已经半年多了,没有出现再被盗号的情况。我在这儿提供一个QQ群:866986904(目前已有270人…

    2022年7月25日
    130
  • 多模型场景下的成本治理指标体系

    多模型场景下的成本治理指标体系

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号