我用以下方式定义字符串:
static let Regex_studio_tel = "^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$"
但也有一个问题:
文本中的无效转义序列
我象征性的图片:
编辑-1
我的要求是匹配专用飞机号码使用Regex,例如:
我的公司有专机号码:
028-65636688 or 85317778-8007
// aaa-bbbbbbbb-ccc
我们知道aaa
是前缀,它意味着城市拨号代码,而bbbbbbbb
是主要的电话号码,cccc
是固定电话的分机号码,
例如我公司的固定电话是028-65636688
,也许我们公司有10个分机号码:028-65636688-8007 ,028-65636688-8006,028-65636688-8005
等等。当然,它的结尾可能有一个分机号码。
028-65636688-2559
发布于 2016-12-28 07:20:29
两个字符序列\
-
在Swift字符串中不是有效的转义序列。当您需要将\
-
作为模式传递给NSRegularExpression
时,您需要用Swift字符串文本编写\\-
。
所以,你的台词应该是这样:
static let Regex_studio_tel = "^(0[0-9]{2,3}\\-)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?$"
加法
正如罗布所评论的,在[
]
之外出现时,减号不是regex中的一个特殊字符,因此您可以将它写成:
static let Regex_studio_tel = "^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$"
发布于 2016-12-28 07:34:27
我猜你的意图是逃避-
的角色。但这是不必要的(而且是不正确的)。如果您的意图只是为了匹配破折号,则应该完全删除这些反斜杠:
let pattern = "^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$"
不相关,但我对+
这个角色很怀疑。您的意思是要匹配一个或多个[2-9][0-9]{6,7}
事件吗?还是你想要匹配一次?
https://stackoverflow.com/questions/41357169
复制相似问题