首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Regex贪婪范围

Regex贪婪范围
EN

Stack Overflow用户
提问于 2016-08-23 10:27:46
回答 2查看 350关注 0票数 0

String to be matched = "AAA/up to eight upper case letters/AAA" : ex1 : AAA/BB/AAA ex2 : AAA//AAA ex3: AAA/BBCCDDEEFF/AAA

如何匹配中间的0到8个大写字母(即正斜杠之间的字符串)?

我试过regex : AAA/(?!(.*[a-z].*)[A-Z]{0,8})/AAA

但它与上面的任何字符串都不匹配。

(Regex AAA/[A-Z]{0,8}/AAA确实匹配字符串,但它也匹配小写字母。ex: AAA/bb/AAA)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-23 10:36:24

您的原始AAA/[A-Z]{0,8}/AAA是正确的,但是在正则表达式之外的某个地方设置了“不区分大小写”正则表达式修饰符,因此您也可以匹配小写字母。(您检查了Notepad++中的“匹配情况”复选框吗?)

您可以使用(?-i)构造使正则表达式(或表达式的一部分)区分大小写:

代码语言:javascript
运行
复制
(?-i)AAA\/[A-Z]{0,8}\/AAA

演示:https://regex101.com/r/aS2iW8/1

票数 6
EN

Stack Overflow用户

发布于 2016-08-23 10:29:09

你可以:

代码语言:javascript
运行
复制
^A{3}/([A-Z]{0,8})/A{3}$

现在,匹配的组\1会得到两个/s中的内容。

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39098647

复制
相关文章

相似问题

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