正则表达式 ?!.*[HJKL] 表示什么
时间: 2024-06-04 07:09:00 浏览: 14
正则表达式 `?!.*[HJKL]` 是一个负向前瞻,表示匹配不包含字符集 `[HJKL]`。
具体来说,`?!` 表示零宽负向前瞻,即当前位置后面的字符不包含 `[HJKL]` 才会匹配成功。`.*` 表示任意数量的任意字符,`[HJKL]` 表示字符集,表示匹配 `H`、`J`、`K`、`L` 中的任意一个字符。所以 `?!.*[HJKL]` 可以匹配不包含字符集 `[HJKL]` 的字符串。
相关问题
写一段匹配字符串必须有大写字母、小写字母、数字、特殊字符,并且字符不能在键盘上连续相邻3个及以上,注意是键盘上的上下左右顺序不是字母顺序,字符长度不小于10不大于20的正则表达式
以下是可以匹配上述要求的正则表达式:
```
^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}[\]:;"'<>,.?/])(?!.*[qwertasdfgzxcvb])(?!.*[poiuy])(?!.*[hjkl])(?!.*[nm])(?!.*[QWERTASDFGZXCVB])(?!.*[POIUY])(?!.*[HJKL])(?!.*[NM])[a-zA-Z\d~!@#$%^&*()_+`\-={}[\]:;"'<>,.?/]{10,20}$
```
解析如下:
- `^` 表示匹配字符串开头。
- `(?=.*[A-Z])` 表示必须包含至少一个大写字母。
- `(?=.*[a-z])` 表示必须包含至少一个小写字母。
- `(?=.*\d)` 表示必须包含至少一个数字。
- `(?=.*[~!@#$%^&*()_+`\-={}[\]:;"'<>,.?/])` 表示必须包含至少一个特殊字符。
- `(?!.*[qwertasdfgzxcvb])(?!.*[poiuy])(?!.*[hjkl])(?!.*[nm])(?!.*[QWERTASDFGZXCVB])(?!.*[POIUY])(?!.*[HJKL])(?!.*[NM])` 表示负向前瞻,不允许包含键盘相邻的字符。
- `[a-zA-Z\d~!@#$%^&*()_+`\-={}[\]:;"'<>,.?/]{10,20}` 表示字符集合,长度在 10 到 20 之间。
- `$` 表示匹配字符串结尾。
linux中vi的使用技巧
`vi` 是 Linux 和 Unix 系统中的一个文本编辑器,它非常强大且功能丰富,适合于命令行操作。以下是一些常用的 `vi` 使用技巧:
1. **打开文件**:
- `vim <file>` 打开现有文件
- `vi +<line_number> <file>` 打开文件并跳转到指定行
- `vi new_file.txt` 创建新文件
2. **基本编辑模式与命令模式**:
- 进入命令模式,按下 `Esc` 键或直接输入 `:`
- 进入插入模式,按下 `i` 或者 `a` 插入文本
- 退出编辑模式,按 `Esc` 或在命令模式下输入 `:wq` 保存并退出,`:q!` 强制退出不保存
3. **光标移动**:
- `h`, `j`, `k`, `l` 分别是向左、下、上、右移动一个字符
- `0` 移动到行首, `$` 移动到行尾
- `gg` 移动到文件开头,`G` 移动到文件结尾
4. **查找和替换**:
- `/pattern` 查找,`n` 向下查找下一个匹配,`N` 向上查找
- `:s/old/new/g` 替换当前行所有匹配的文本,`%s/.../.../g` 替换全文件
5. **撤销和重做**:
- `u` 撤销上一步操作
- `U` 重做上一步操作(撤销的逆操作)
6. **模式切换快捷键**:
- `i` 和 `a` 进入插入模式进行文本输入
- `I` 开始行首插入
- `o` 在光标下方添加新的一行,`O` 在上方添加
7. **使用 hjkl 移动光标,zz 键存档并回退到命令模式**
8. **宏命令**(`:define` 和 `:execute`):可以定义和重复复杂的编辑序列。
**相关问题**:
1. 如何在vi中创建一个新的行?
2. 如何查找文本并跳至下一个匹配位置?
3. 宏命令在实际编辑中有哪些应用场景?
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)