case 正则 取反
时间: 2024-04-16 10:22:45 浏览: 14
在正则表达式中,取反是指匹配不符合某个模式的内容。可以通过使用否定字符类或否定预查来实现正则表达式的取反。
1. 否定字符类:使用^符号在字符类中表示取反。例如,正则表达式[^abc]表示匹配除了a、b、c之外的任意字符。
2. 否定预查:使用(?!pattern)来表示否定预查,其中pattern是要排除的模式。例如,正则表达式\w(?!abc)表示匹配任意一个字母、数字或下划线,但不包括后面紧跟着的"abc"。
下面是一个示例:
假设我们有一个字符串:"Hello, World! 123"
我们想要匹配除了字母和数字之外的所有字符,可以使用正则表达式[^a-zA-Z0-9]。
这个正则表达式将匹配逗号、空格和感叹号等非字母和非数字的字符。
相关问题
kebab-case正则校验
以下是一个可以校验 kebab-case 命名规范的正则表达式:
```
/^[a-z]+(-[a-z]+)*$/
```
这个正则表达式的含义是以小写字母开头,后面可以跟着一个或多个由连字符 "-" 分隔的小写字母单词。如果一个字符串符合这个正则表达式,那么它就是一个合法的 kebab-case 命名规范的字符串。
shell case 用正则
在shell中,可以使用case语句来匹配正则表达式,具体语法如下:
```
case "$var" in
pattern1) command1;;
pattern2) command2;;
pattern3) command3;;
*) default_command;;
esac
```
其中,pattern1、pattern2、pattern3等为正则表达式,$var为待匹配的变量,command1、command2、command3为与匹配的正则表达式对应的命令,default_command为默认命令(如果没有匹配到任何正则表达式时执行的命令)。
下面是一个示例代码,展示如何在case中使用正则表达式:
```
#!/bin/bash
read -p "请输入一个字符串:" str
case "$str" in
[a-z]*)
echo "输入的字符串以小写字母开头"
;;
[A-Z]*)
echo "输入的字符串以大写字母开头"
;;
[0-9]*)
echo "输入的字符串以数字开头"
;;
*)
echo "输入的字符串不符合规则"
;;
esac
```
在这个示例中,首先从用户输入中读取一个字符串,然后使用case语句来判断字符串的开头字符。如果字符串以小写字母开头,则输出"输入的字符串以小写字母开头";如果字符串以大写字母开头,则输出"输入的字符串以大写字母开头";如果字符串以数字开头,则输出"输入的字符串以数字开头";如果字符串不符合任何规则,则输出"输入的字符串不符合规则"。