如何为{:1>编写Regex
等于任何大写的字母数字
[0-9A-Z]+
一次或多次,但不等于FOO
?
我看到^
排除了以下任何字符,例如"排除xyz":
scala> val blockXYZ = """[^XYZ]+""".r
blockXYZ: scala.util.matching.Regex = [^XYZ]+
scala> "XXXX".matches(blockXYZ.toString)
res26: Boolean = false
scala> "AAA".matches(blockXYZ.toString)
res27: Boolean = true
scala> "AAAX".matches(blockXYZ.toString)
res28: Boolean = false
但是,我不确定如何不匹配整个单词和匹配字母数字字符。
答案 0 :(得分:4)
您需要在正则表达式中使用否定前瞻:
^(?!FOO$)[0-9A-Z]+$
(?!FOO$)
表示如果[0-9A-Z]+
后跟输入结束,则不匹配以下模式FOO
。
答案 1 :(得分:0)