作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下正则表达式模式匹配完全限定的 Microsoft SQL Server 表名称 ([dbName].[schemaName].[tableName]
),其中模式名称是可选的:
val tableNamePattern = """\[(\w+)\](?:\.\[(\w+)\])?\.\[(\w+)\]""".r
我是这样使用它的:
val tableNamePattern(database, schema, tableName) = fullyQualifiedTableName
当架构名称缺失时(例如:[dbName].[tableName]
),schema
值将设置为 null
。
是否有 Scala 惯用的方法将其设置为 None
,并在提供 schemaName 时设置为 Some(schema)
?
Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. -- Jamie Zawinski
最佳答案
我将从链接问题的已接受答案中复制代码,但也不会给出任何信用。在这里:
object Optional {
def unapply[T](a: T) = if (null == a) Some(None) else Some(Some(a))
}
val tableNamePattern(database, Optional(schema), tablename) = fullyQualifiedTableName
PS:我今天刚刚在 Twitter 上想知道创建特殊案例提取器是否像他们建议的那样普遍。 :)
关于regex - 在 Scala 中将正则表达式可选组设置为 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18794396/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!