我正在Swift 5.7.1中使用Swift软件包管理器。我想使用正则表达式文字编译代码。例如,main.swift
可以如下所示:
let message = "Hello, world"
print(message.replacing(/[aeiou]/, with: "[vowel]"))
我目前对结果不感兴趣,对汇编不感兴趣。
如果我在XCode中创建一个项目,它可以正常工作,但是,如果我在Swift Package Manager中尝试(使用swift build
),它显然不能识别/[aeiou]/
是正则表达式文字,相反,我会得到类似'/' is not a prefix unary operator
的消息。
有什么方法可以让Swift Package Manager使用它吗?或者只是它还不受支持?
1条答案
按热度按时间tzxcd3kk1#
Swift 5.7的regex常量可以在Swift Package Manager中使用,但必须在
Package.swift
中显式启用。默认情况下,新语法是禁用的,因为它是一个破坏源代码的语言更改(由于注解语法和/
操作符中现有的“/”使用)。下面是一个示例性的
Package.swift
,它为所有的包目标设置了“-enable-bare-slash-regex”,我还包含了一些额外的设置,如果你正在努力完全采用Swift 5.7,你可能会需要这些设置:在未来的Swift版本中,一旦现有代码有时间过渡到Swift 5.7,正则表达式文本可能会默认启用。