首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex公式& Google

Regex公式& Google
EN

Stack Overflow用户
提问于 2022-10-13 21:27:25
回答 3查看 40关注 0票数 0

我正在做谷歌表格,我需要把一些设备和房间号码联系起来。我在细胞里找一个图案,像这样: CS1-4。CS总是在单个数字(1-4)之前,后面是'-‘,然后是1或2个数字。例如,我可能有CS1-5或CS1-12。每当我有CS1-9,我会得到一个#参考错误的谷歌表。

下面是我现在的代码:

代码语言:javascript
复制
=IF(REGEXMATCH(D10, "CS([1-4]-[1-4])"), 220, IF(REGEXMATCH(D10, "CS([1-4]-[5-8])"), 240, IF(REGEXMATCH(D10, "CS([1-4]-[9-12])"), 260, IF(REGEXMATCH(D10, "CS([1-4]-[13-16])"), 280, ""))))

它似乎只是看第一个数字后的破折号,而不是看看是否有两个数字后的破折号。任何帮助都将不胜感激,谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-10-13 21:41:18

这个表示法[9-12]不是9-12的范围,它是一个无效的范围。

数字1-4和9-12的图案可以写成:

代码语言:javascript
复制
CS-[1-4]-(9|1[012])

和13-16

代码语言:javascript
复制
CS-[1-4]-1[3-6]

如果不希望部分匹配,可以在模式的左和右添加单词边界\b,或者将^$锚定。

票数 2
EN

Stack Overflow用户

发布于 2022-10-13 21:29:32

尝试:

代码语言:javascript
复制
"CS[1-4]-9|10|11|12"

外汇:

代码语言:javascript
复制
=IF(REGEXMATCH(D10, "CS[1-4]-9|10|11|12"),  260, 
 IF(REGEXMATCH(D10, "CS[1-4]-13|14|15|16"), 280, 
 IF(REGEXMATCH(D10, "CS[1-4]-[1-4]"),       220, 
 IF(REGEXMATCH(D10, "CS[1-4]-[5-8]"),       240,))))
票数 0
EN

Stack Overflow用户

发布于 2022-10-13 22:58:09

我现在的工作是这样的。

代码语言:javascript
复制
=IF(REGEXMATCH(D10, "CS[1-4]-[1|2|3|4]$"),  220,  IF(REGEXMATCH(D10, "CS[1-4]-[5|6|7|8]$"),  240,  IF(REGEXMATCH(D10, "CS[-4]-(9|10|11|12)$"),  260,  IF(REGEXMATCH(D10, "CS[1-4]-13|14|15|16$"), 280, ))))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74061996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档