我有这样的代码。。
func blah() {
if let r = someString.firstMatch(of: /([abc])(\d{2})$/) {
blah blah .. String(r.1), String(r.2)
}
}
通常情况下,对于正则表达式,我只会将regex-guts作为变量。
因此,类似这样的东西:
let RX: RegexComponent = /([abc])(\d{2})$/
func blah() {
if let r = someString.firstMatch(of: RX) { ..
}
我已经完全和绝对失败了,能够做到这一点,并已寻找了几个小时。
有人建议您需要any RegexComponent
let RX: any RegexComponent = /([abc])(\d{2})$/
func blah() {
if let r = someString.firstMatch(of: RX) { ..
}
但它根本不起作用。firstMatch#of
的变元无疑是RegexComponent
。
我怎么才能创建/设置一个RegexComponent
的变量??
1条答案
按热度按时间nhaq1z211#
这应该可以达到目的:
现在,既然它可以工作,您可以Alt+单击变量名(
RX
),类型推断(即编译器“推断”的变量类型)应该告诉您它是Regex<Substring>
你也可以这样写:
我没有完整的解释,因为我还没有玩过新的
Regex
,但我猜这是因为RegexComponent
是protocol
,所以没有真正的init
,并且必须有一些“文字”:BareSlashRegexLiterals