正则表达式只能含有数字和-号,且-号不能在开头和结尾,必须且只能有两个-号,两个-号中间必须有数字
时间: 2024-03-19 10:43:32 浏览: 120
可以使用以下正则表达式来匹配符合条件的字符串:
```
^(?!-)(?!.*?-$)[0-9-]+(-[0-9]+){2}$
```
解释一下正则表达式的各个部分:
- `^` 表示字符串的开头
- `(?!-)` 表示后面不能跟着连字符
- `(?!.*?-$)` 表示后面不能跟着连字符,并且连字符不能在结尾
- `[0-9-]+` 表示数字和连字符组成的字符串,可以出现一次或多次
- `(-[0-9]+){2}` 表示两个连字符,中间必须有数字
- `$` 表示字符串的结尾
这个正则表达式可以匹配像 `1-2-3-4` 或者 `12-345-678` 这样的字符串,但是不能匹配像 `-1-2-3` 或者 `1-2-3-` 这样的字符串。
相关问题
正则表达式只能含有数字和下划线,且下划线不能在开头和结尾,必须且只能有两个-号,两个-号中间必须有数字
可以使用以下正则表达式来匹配符合条件的字符串:
```
^(?!_)(?!.*?_$)[0-9_]+(-[0-9]+){2}$
```
解释一下正则表达式的各个部分:
- `^` 表示字符串的开头
- `(?!_)` 表示后面不能跟着下划线
- `(?!.*?_$)` 表示后面不能跟着下划线,并且下划线不能在结尾
- `[0-9_]+` 表示数字和下划线组成的字符串,可以出现一次或多次
- `(-[0-9]+){2}` 表示两个连字符,中间必须有数字
- `$` 表示字符串的结尾
这个正则表达式可以匹配像 `1_2-3_4-5` 或者 `1_2-345-678` 这样的字符串,但是不能匹配像 `_1-2_3-4` 或者 `1_2-3_4-` 这样的字符串。
正则表达式:最少2位,由大写字母或数字构成只允许出现一次-且不能作为开头和结尾
可以使用以下正则表达式进行匹配:
```(?<!^)(?!.*-.*-)([A-Z\d]{2,})(?!-)(?!.*-.*$)```
解释:
- `(?<!^)` 表示前面不是字符串开头
- `(?!.*-.*-)` 表示不允许出现两个连续的 `-`
- `([A-Z\d]{2,})` 表示由大写字母或数字构成,最少2位
- `(?!-)` 表示不允许 `-` 作为结尾
- `(?!.*-.*$)` 表示不允许 `-` 作为开头
这个正则表达式使用了多个零宽断言,确保了字符串的各种条件。你可以将这个正则表达式用于匹配符合条件的字符串。