Regex 有没有办法将一个正则表达式的值嵌入Scala中的另一个正则表达式中?
我有一些正则表达式值需要用作新正则表达式的变量 我想写一些像:Regex 有没有办法将一个正则表达式的值嵌入Scala中的另一个正则表达式中?,regex,scala,Regex,Scala,我有一些正则表达式值需要用作新正则表达式的变量 我想写一些像: val lowers: Regex = "[a-z]”.r val uppers: Regex = "[A-Z]”.r val letters: Regex = “(lowers | uppers)*”.r 但我不知道它的正确语法 如果可能,如何在Scala中实现 编辑 正如注释中所建议的,当regex变量要添加到regex之外时,这也与此相关,这似乎并不能解决这里的问题。您可以使用字符串插值从其他两个字
val lowers: Regex = "[a-z]”.r
val uppers: Regex = "[A-Z]”.r
val letters: Regex = “(lowers | uppers)*”.r
但我不知道它的正确语法
如果可能,如何在Scala中实现
编辑
正如注释中所建议的,当regex变量要添加到regex之外时,这也与此相关,这似乎并不能解决这里的问题。您可以使用字符串插值从其他两个字符串构造regex:
val:Regex=“[a-z]”。r
val uppers:Regex=“[A-Z]”。r
val字母:Regex=s“($lowers |$uppers)*.”
请注意字符串文本首字母“
之前的s
前缀。
输出:
([a-z]|[a-z])*
请注意,您应该注意模式中的空格,默认情况下,空格是有意义的
如果只想使用空格进行格式化,为了便于阅读正则表达式,可以使用(?x)
(“verbose”,“freespacing”)修饰符:
val字母:Regex=s“(?x)($lowers |$uppers)*.”
请注意,如果要使用此功能,您需要转义模式中的任何文字空白字符(制表符、空格、换行符)。此外,您还必须转义
#
字符,因为它在该模式中变得非常特殊。val letters:Regex=“[a-Za-z]*“.r
。或者,你的意思是你有一些正则表达式值,需要用作新正则表达式的变量吗?@WiktorStribiżew我指的是后者。要用作新变量的正则表达式值。是否有帮助?是否需要val字母:regex=s“($lowers |$uppers)*”。r
?看,看