regular expression (Linux)中 * 的含义, 请举例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了regular expression (Linux)中 * 的含义, 请举例相关的知识,希望对你有一定的参考价值。
如果我输入:1,$ s/^ *$//
我得到的结果是什么?谢谢!
这个应该是 vim 中的替换吧,
1,$ -> 从第一行到最后一行s -> 做替换操作
/ -> 模式匹配开始
^ -> 从每一行的开头
* -> 匹配0个或者多个空格 (*前面有空格)
$ -> 到一行的结尾
/ -> 模式匹配结束
-> (替换的内容)空
/ -> 替换的内容结束
如果你不太明白的话, 要看看相应的语法, 而不仅是 正则表达式.
上面的解释, 白话一点就是:
把 每一行中只有0个或者多个空格的行 替换成 空(什么也没有),换句话说:
删除空行针对你的问题:
*的含义:
* 在正则中表示 0个或者多个,比如, a后面跟着一个*, 表示 能匹配 0个或者 多个a.追问
我一直不能理解 * 的含义, 如果是代表0个或多个,不就是表示包含全部吗?那么这句话的意思就因该是把整篇文档替换成空。 为什么不能直接
:1,$ d
正则表达式中的 * 和 平时认为的 通配符是不一样的,
平时 我们说 * 可以通配所有
但正则中, * 只是表示 数量, 它前面是什么, 就表示 匹配 任意数量的[前面的字符]
比如一个文件中:
aaa
aaa
如果你用
a* 来匹配, 这三行 都可以匹配到,
但是
如果只用 *, 那就是错误的, 语法都不对. * 之前 必须要指定[某种东西]
参考技术A 正常解释是匹配前面的子表达式零次或多次你这里可以理解匹配零个或多个空格。
以上是关于regular expression (Linux)中 * 的含义, 请举例的主要内容,如果未能解决你的问题,请参考以下文章
regular expression (Linux)中 * 的含义, 请举例
python 中 正则表达式(Regular Expressions)学习