=REGEXP(N109,"([-+]?\d*\.?\d+)|(-?[a-zA-Z]+)")将这个函数替换为Office版本
时间: 2024-09-30 20:07:05 浏览: 40
在Office早期版本(如Excel 2007及之前)中,没有直接等效于正则表达式函数 `REGEXP` 的内置函数。不过可以使用 `SEARCH`, `FIND`, 和 `LEN` 函数结合来达到类似的效果。`REGEXP` 中的正则表达式匹配功能可以用以下方法替换:
1. 匹配数字 (`[-+]?\d*\.?\d+`) - 使用 `FIND` 和 `SEARCH` 查找数字部分。
2. 匹配字母 (`-?[a-zA-Z]+`) - 同样使用 `FIND` 和 `SEARCH` 查找字母部分。
假设我们想检查单元格 N109 是否包含数字或字母,可以这样做:
```excel
=IF(ISNUMBER(SEARCH(".",N109)) OR ISNUMBER(SEARCH("-",N109)) OR ISNUMBER(SEARCH("+",N109)), "含有数值", IF(ISNUMBER(SEARCH("A",N109,1,65)), "含有字母", ""))
```
这个公式首先检查是否能找到小数点、减号或加号(表示可能存在数字),然后检查是否能找到大写字母(范围是 A 到 Z),如果两者都没有,则返回空字符串。
请注意,这只是一个近似替代,实际效果取决于输入内容的具体情况。
相关问题
@TableField(value = "pwd") @NotNull(message = "密码不能为空", groups = {AddGroup.class}) @Pattern(regexp = "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,18}$", message = "密码强度太弱,请包含大小写字母数字,不能使用特殊字符,长度再8-18位", groups = {AddGroup.class}) private String pwd;
这是一个Java代码片段,使用了注解来进行数据校验。其中,@TableField表示该字段与数据库表的列名映射,@NotNull表示该字段不能为空,并且指定了在AddGroup组中进行校验,@Pattern表示该字段必须符合指定的正则表达式,同样在AddGroup组中进行校验。该代码片段的作用是对密码字段进行强校验,要求密码包含大小写字母和数字,不能使用特殊字符,长度在8-18位之间。
regexp = "^\s*(-?\d+(\.\d+)?)\s*[\\,\\]\s*(-?\d+(\.\d+)?)\s*$"限制范围第一个数字是-180到180,后面数字-90到90
好的,你的问题是关于正则表达式的限制范围的。根据你的要求,可以将正则表达式修改为:
```^\s*(-?(?:1[0-7]\d|\d{1,2})(\.\d+)?)\s*[\\,\\]\s*(-?[1-8]?\d(\.\d+)?|90)\s*$```
其中,第一个数字的范围是-180到180,可以表示为正则表达式:`-?(?:1[0-7]\d|\d{1,2})`;第二个数字的范围是-90到90,可以表示为正则表达式:`-?[1-8]?\d(\.\d+)?|90`。将两者结合起来,就得到了上述的正则表达式。
阅读全文