^.+\/(?!.*\?).+$ 可以匹配的字符
时间: 2024-04-28 20:25:27 浏览: 12
正则表达式 `^.+\/(?!.*\?).+$` 可以匹配以下类型的字符串:
- `http://www.example.com/path/to/file`
- `/path/to/file`
- `C:\path\to\file`
- `./path/to/file`
- `../path/to/file`
- `ftp://ftp.example.com/path/to/file`
- `git://github.com/user/repo.git`
- 等等,只要字符串以任意字符开头,包含一个斜杠,且斜杠后面没有紧跟问号,就可以被匹配。
相关问题
echo "/etc/rc.d/abc/edu/" | sed -r 's@^(/.*/)[^/]+/?@\1@g' 这段命令是什么意思
这段命令使用 sed 工具对输入的字符串进行替换操作。具体来说,它的含义为:
- `sed`:调用 sed 工具进行操作。
- `-r`:使用扩展正则表达式。
- `'s@^(/.*/)[^/]+/?@\1@g'`:进行替换操作的表达式,其中:
- `s`:表示进行替换操作。
- `@`:使用 @ 符号作为分隔符,避免在正则表达式中使用斜杠。
- `^(/.*/)`:匹配以一个或多个斜杠包围的任意字符。
- `[^/]+/?`:匹配任意不含斜杠的字符,后面可能跟一个斜杠。
- `\1`:将匹配到的第一个子表达式(即 `(/.*/)`)替换为此处的内容,即保留以斜杠包围的部分。
- `g`:表示全局替换,即替换所有匹配项。
因此,针对输入的字符串 `/etc/rc.d/abc/edu/`,该命令的作用是提取出第一个和最后一个斜杠之间的内容,即 `/etc/rc.d/`。
^[+]?\\d+(\\.\\d+)?$ 正则表达式
^[+]?\\d+(\\.\\d+)?$ 是一个用于匹配数字的正则表达式。下面是对该正则表达式的介绍:
1. ^ 表示匹配字符串的开始位置。
2. [+]? 表示可选的正号,即可以有也可以没有。
3. \\d+ 表示匹配一个或多个数字。
4. (\\.\\d+)? 表示可选的小数部分,其中 \\. 表示匹配小数点,\\d+ 表示匹配一个或多个数字。
5. $ 表示匹配字符串的结束位置。
该正则表达式可以匹配以下类型的数字:
- 整数,如 123、0、-456。
- 带有小数部分的数字,如 3.14、-0.5、123.0。
- 可以带有正号或者没有正号。