我有一个字符串文字,该文字将被发送到方法。该方法具有带字符串的类型安全参数。
类型安全参数应该包含a
作为首字母
然后是除零以外的任何数字。
我已经在Scala中用精细类型编写了一个匹配器
import eu.timepit.refined.string.MatchesRegex
import eu.timepit.refined._
type versionRegex = MatchesRegex[W.`"""a\\d?"""`.T]
type version = String Refined versionRegex
此问题是它接受1到9之间的数字
说
a1
,a2
等。不幸的是,也支持a0
。我想避免0
有没有办法增强正则表达式?
答案 0 :(得分:3)
您可以明确排除0(如果要排除不在范围开头或结尾的数字,这特别有用)
a(?!0)\d?
type versionRegex = MatchesRegex[W.`"""a(?!0)\\d?"""`.T]
或仅指定要允许的数字:
a[1-9]?
type versionRegex = MatchesRegex[W.`"""a[1-9]?"""`.T]