SED正则表达式中[方括号]的特殊处理

这篇具有很好参考价值的文章主要介绍了SED正则表达式中[方括号]的特殊处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天被这个方括号懵晕了,特此记录

例如: 去除输入字符串“1[2.3]4[ab,c]”中的所有方括号和逗号:

$ echo "1[2.3]4[ab,c]"|sed -e "s/[,\]\[]//g"
1[2.3]4[ab,c]
 

It doesn't work!

原因:Regular Expressions

The <right-square-bracket> ( ']' ) shall lose its special meaning and represent itself in a bracket expression if it occurs first in the list (after an initial <circumflex> ( '^' ), if any).

解决方案:关键是要把 ] 右方括号不加escape放在首位.

$ echo "1[2.3]4[ab,c]"|sed -e "s/[][,]//g"
12.34abc

$ echo "1[2.3]4[ab,c]"|sed -e "s/[]\[,]//g"
12.34abc

$ echo "1[2.3]4[ab,c]"|sed -e "s/[],[]//g"
12.34abc
 

The order of some characters is important:

  • - should be at the end like this -]
  • [] should be like that [][other characters]
  • ' should be escaped like that '\''
  • not begin with ^ like in [^
  • not begin with [. [= [: and end with .] =] :]
  • not end with $]

References:

regex - How to escape square closing bracket in sed - Stack Overflow

Regular Expressions文章来源地址https://www.toymoban.com/news/detail-633937.html

到了这里,关于SED正则表达式中[方括号]的特殊处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 正则表达式(拓展)、grep(拓展)和sed

      egrep默认使用的是 扩张正则 。   表示次数 * 匹配前面字符任意数 ? 0次或者1次 + 1次或者多次 {n} 匹配n次 {m,n} 最少m次,最多n次 {,n} 匹配前面的字符最多n次 {n,} 匹配前面的字符最少n次   表示分组 ()分组 将多个字符捆绑在一起当作一个整体处理 1、2 后向引用 | 或者 a|b

    2024年02月19日
    浏览(28)
  • 正则表达式-分组括号以及捕获分组

    在java正则表达式中,( )是分组的意思,每组都有一个组号 只看左括号,不看右括号,按照左括号的顺序,从左往右,依次为第一组,第二组,第三组等等,如图: 根据左括号分成了三组 捕获分组,非捕获分组 可以获取某一组中的内容反复使用 规则: 正则表达式内部使

    2024年01月22日
    浏览(84)
  • sed中使用正则表达式进行替换以及注意事项

    sed中使用正则表达式进行替换的时候,一定要注意,有些特殊字符在使用时要转义,目前发现的有: 用于分组的小括号:(),在使用时要用进行转义,但是匹配字符串中真正的小括号时,无需转义; 表示前面的表达式出现次数的{},也要转义; 表示前面的表达式出现1次或多

    2023年04月22日
    浏览(32)
  • 正则表达式、grep过滤工具、sed基本用法、sed基本操作指令、sed应用案例

    1.1 问题 本案例要求熟悉正则表达式的编写,完成以下任务: 利用grep或egrep工具练习正则表达式的基本用法 1.2 方案 表-1 基本正则列表 表-2 扩展正则列表 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:正则表达式匹配练习 1)基本正则表达式 测试 ^ $ [] [^] 测试 .

    2024年01月24日
    浏览(70)
  • Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正。 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式, 正则表达式 ——事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的

    2024年02月15日
    浏览(37)
  • java正则表达式匹配替换大括号变量${}和替换${}变量的值

    java正则表达式替换“$ {}”特殊字符并还原,以及java正则表达式替换${}变量为变量的值这两种操作的代码示例。 正则表达式还是非常有用的, 可以耐心看下定义,多尝试下。 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将

    2024年02月02日
    浏览(49)
  • Latex公式中矩阵的方括号和圆括号表示方法

    一、背景 在使用Latex写论文时,不可避免的涉及到矩阵公式。有的期刊要求矩阵用方括号,有的期刊要求矩阵用圆括号。因此,特记录一下Latex源码在两种表示方法上的区别,以及数组和方程组的扩展。 二、矩阵的方括号表示 首先所有的矩阵肯定都是在标签 begin{eqnarray} 和

    2024年01月24日
    浏览(27)
  • python中对象与方括号对象

    近期在python学习中遇到问题,为了快捷创建对象直接使用花括号创建字典对象。 那么花括号之间的对象都是字典对象吗?显然其中是有一定奥妙的。 显然同样都是直接使用花括号创建,但是实际上类型却有所差别。 运行一下得到结果如下:  dict表示所需要的普通字典对象,

    2024年03月18日
    浏览(34)
  • 【Matlab笔记_15】正则表达式之特殊字符文本位置提取

    目标: 1.提取“ BLT-1-A1.txt ”中第一个’ - ‘前面的所有字符。 2.提取“ BLT-1-A1.txt ”中第一个’ - ‘和第二个’ - ‘中间的所有字符。 3.提取“ BLT-1-A1.txt ”中最后一个’ - ‘和最后一个’ . ‘中间的所有字符。 方法如下: 注: 这个正则表达式的含义是匹配从字符串开始(

    2024年02月07日
    浏览(36)
  • JS正则验证密码 英文大小写+数字+特殊符号 的表达式。

    我处理的密码策略如下: 包括大写字母、小写字母、数字和符号,这 4 种字符中的 3 种 可以使用四种类型的字符:大写字母、小写字母、数字和密码。 字符数至少为 8位 使用的符号是“!@;:”(实际上,可以根据自己的情况来指定,我省略了它,因为它可变) 生成的正则

    2024年02月07日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包