写一个正则表达式:校验最长14个英文或7个汉字, 不能纯数字
时间: 2024-04-13 20:30:44 浏览: 109
可以使用以下正则表达式进行校验:
```regex
^(?![0-9]+$)([\u4e00-\u9fa5]{1,7}|[a-zA-Z]{1,14})$
```
解释一下正则表达式的含义:
- `^` 表示字符串的开始
- `(?!...)` 是一个负向前瞻断言,表示后面不能匹配括号中的正则表达式
- `[0-9]+` 表示匹配一次或多次数字
- `[\u4e00-\u9fa5]{1,7}` 表示匹配1到7个汉字
- `[a-zA-Z]{1,14}` 表示匹配1到14个英文字母
- `|` 是或的意思,表示匹配前面或后面的表达式
- `$` 表示字符串的结束
综上所述,这个正则表达式可以校验字符串是否满足最长14个英文或7个汉字,并且不能是纯数字。
相关问题
用c#写一个根据正则表达式的校验方法
您可以使用 C# 的正则表达式类 `Regex` 来编写一个根据正则表达式的校验方法。以下是示例代码:
```
public static bool ValidateByRegex(string value, string pattern)
{
Regex regex = new Regex(pattern);
return regex.IsMatch(value);
}
```
使用方法:
- `value`:要校验的字符串。
- `pattern`:要使用的正则表达式模式。
例如,如果您想验证字符串 `test123` 是否只包含字母和数字,可以使用以下代码:
```
bool isValid = ValidateByRegex("test123", "^[a-zA-Z0-9]+$");
if (isValid)
{
Console.WriteLine("Valid pattern");
}
else
{
Console.WriteLine("Invalid pattern");
}
```
输出结果应该是 `Valid pattern`。请注意,上面的正则表达式模式只允许字母和数字,其他字符都不允许。您可以根据需要自定义正则表达式模式。
帮我写一个正则表达式用来校验 19位的数字字符串,19位都是数字,但是他本是是一个string类型的数字字符串,首先前9位是"120102001",后面跟了4位年份,最后6位是一个类似流水号的6位数字 这样的正则表达式怎么写
可以使用如下的正则表达式进行校验:
```regex
^120102001\d{4}\d{6}$
```
这个正则表达式的含义是:
- `^`:匹配字符串的开头
- `120102001`:匹配前9位数字
- `\d{4}`:匹配4位数字的年份
- `\d{6}`:匹配后面的6位数字流水号
- `$`:匹配字符串的结尾
因此,这个正则表达式完全符合你的要求,可以用来校验19位的数字字符串是否符合规则。
阅读全文