首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有regex的文字中无效的转义序列

带有regex的文字中无效的转义序列
EN

Stack Overflow用户
提问于 2016-12-28 07:16:06
回答 2查看 30.9K关注 0票数 25

我用以下方式定义字符串:

代码语言:javascript
运行
复制
static let Regex_studio_tel = "^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$"

但也有一个问题:

文本中的无效转义序列

我象征性的图片:

编辑-1

我的要求是匹配专用飞机号码使用Regex,例如:

我的公司有专机号码:

代码语言:javascript
运行
复制
028-65636688 or 85317778-8007  

// aaa-bbbbbbbb-ccc我们知道aaa是前缀,它意味着城市拨号代码,而bbbbbbbb是主要的电话号码,cccc是固定电话的分机号码,

例如我公司的固定电话是028-65636688,也许我们公司有10个分机号码:028-65636688-8007 ,028-65636688-8006,028-65636688-8005等等。当然,它的结尾可能有一个分机号码。

代码语言:javascript
运行
复制
028-65636688-2559
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-28 07:20:29

两个字符序列\ -在Swift字符串中不是有效的转义序列。当您需要将\ -作为模式传递给NSRegularExpression时,您需要用Swift字符串文本编写\\-

所以,你的台词应该是这样:

代码语言:javascript
运行
复制
static let Regex_studio_tel = "^(0[0-9]{2,3}\\-)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?$"

加法

正如罗布所评论的,在[ ]之外出现时,减号不是regex中的一个特殊字符,因此您可以将它写成:

代码语言:javascript
运行
复制
static let Regex_studio_tel = "^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$"
票数 56
EN

Stack Overflow用户

发布于 2016-12-28 07:34:27

我猜你的意图是逃避-的角色。但这是不必要的(而且是不正确的)。如果您的意图只是为了匹配破折号,则应该完全删除这些反斜杠:

代码语言:javascript
运行
复制
let pattern = "^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$"

不相关,但我对+这个角色很怀疑。您的意思是要匹配一个或多个[2-9][0-9]{6,7}事件吗?还是你想要匹配一次?

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

https://stackoverflow.com/questions/41357169

复制
相关文章

相似问题

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