首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则条件

正则条件
EN

Stack Overflow用户
提问于 2015-06-12 16:09:42
回答 1查看 79关注 0票数 2

我有一个准则如下。

代码语言:javascript
复制
'#^(VK[1-8][0-9A-Z]+)#i'

这很好,如果字符串以VK1-8开头(例如VK2TEST ),则返回true。但是,如果在0-9A-Z之后,有一个/和更多字符的可能性,其中一些字符我需要返回true,而有些字符需要返回false,那该怎么办?例如VK2TEST/P。

如果我需要返回,让我们假设,VK2TEST/P和VK2TEST/M为真,但其他字母数字字符继续/为假,我如何做呢?这有可能吗?例如..。

代码语言:javascript
复制
VK2TEST = true
VK2TEST/P = true
VK2TEST/P1 = false
VK2TEST/M = true
VK2TEST/MM = false
VK2TEST/QRP = true

我的研究指向条件子模式,但我不知道我是否正朝着正确的方向发展。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 16:20:55

关于下列结果:

代码语言:javascript
复制
VK2TEST = true
VK2TEST/P = true
VK2TEST/P1 = false
VK2TEST/M = true
VK2TEST/MM = false
VK2TEST/QRP = true

可以使用regexp,如下所示:

代码语言:javascript
复制
'#^(VK[1-8][0-9A-Z]+(\/(M|P|QRP))?)$#i'

此语法将在PCRE元字符语法页面。中讨论。

以下是一些建议:

  • 转义字符
  • []:类别定义
  • +:一个或多个量词
  • ?:零或一个量词。
  • ():子模式
  • \x{e76f}\x{e76f}:启动备选分支机构
  • $:主题结束

一些注意事项:

  • 如果您想要一个或多个类中的一个或多个类,那么+应该在类之外,例如[1-8]+包含11。如果您想要1-8或+,请使用[1-8+]。而且,在您的示例中,[A-Z+]将匹配T而不是额外的EST字符。为了匹配单词测试,您可以在类定义之外使用[A-Z]++
  • 斜杠,/,需要转义,因此\/
  • 如果您想匹配不同的子字符串,则应该使用()中包含的子模式,同时使用|分支管道来分离模式。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30807640

复制
相关文章

相似问题

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