Follow Excellent, Success will Chase you

0%

正则表达式(regular expression) [^,*]与[^,]*区别

正则表达式(Regular Expression) [^,]与[^,]区别:

  1. $ sed ‘s/[^,]*/{&}/‘ example.txt

    01

  2. $ sed ‘s/[^,*]/{&}/‘ example.txt

    02

使用此特殊字符匹配任意字符或字符串的重复多次表达式。例如:compu*t将匹配字符u一次或多次。

03

  • 只匹配[ ] 内字符。可以是一个单字符,也可以是字符序列
  • []在指定模式匹配的范围或限制方面很有用。结合使用*与[ ]更是有益,
  • 例如:[ A - Z a - Z ] 将匹配所有单词 注意* :^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。

如:[^a-zA-Z]匹配任一非字母型字符,而[ ^ 0 - 9 ]匹配任一非数字型字符。

  • $ sed ‘s/[^,*]/{&}/‘ example.txt
  • 表示把开头不是一个或多个“,”时的第一个字符加上{}

    04

只对第一个字符“1”加上了{},主要原因是[ ]内的字符一次只匹配一个。

  • 表示把不是“,”之前的所有字符串,加上{}

    05

截取字符串

  • 原文本文件 example.txt
    102,John Smith,IT Manager
    103,Raj Reddy,Sysadmin
    104,Anand Ram,Developer
    105,Jane Miller,Sales Manager
    ,123
    ,lin,feng
    ,,,sss

截取非数字的所有字符 –失败

  • $ sed ‘s/[^0-9]*/ /‘ example.txt

    06

  • 失败原因:[^0-9]表示匹配一非数字型字符,而[^0-9]*表示一或多个非数字型字符,但只要有一个字符匹配成立,就进行替换。

截取非数字的所有字符 –成功

  • $ sed ‘s/[^0-9].*/ /‘ example.txt

    07

-------------本文结束感谢您的阅读-------------
  • 本文作者: Winddoing
  • 本文链接: https://winddoing.github.io/post/10189.html
  • 作者声明: 本博文为个人笔记, 由于个人能力有限,难免出现错误,欢迎大家批评指正。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!