【发布时间】:2021-01-15 19:56:28
【问题描述】:
我想检查给定的String 是否为 amount 格式。为了更好地理解,举几个例子:
应该返回true:
2x
31 倍
3x abcd
应该返回false:
2x3
3xabc
asdf3x
所以一般来说:它必须以数字(0-9)开头,可以是更多数字。在数字之后应该紧跟一个“x”/“X”,并且在“x”/“X”之后应该是结尾或空格。
我正在努力完成这项工作。这是我尝试过的:
func isAmountFormat() -> Bool {
return self.matches("[0-9]+[X,x]")
}
谁能帮帮我?
【问题讨论】:
-
您可以添加单词边界
\b[0-9]+[Xx]\b -
@Thefourthbird 给出
invalid escape sequence in literal. -
那么也许
\\b[0-9]+[Xx]\\b -
使用捕获组
\\b([0-9]+)[Xx]\\b见regex101.com/r/Y2DNT9/1 -
使用
"(?i)\\b[1-9][0-9]*x\\b"。您能否描述一下“金额格式”的含义以获得答案?