Regex 在关键字之间使用正则表达式提取文本

Regex 在关键字之间使用正则表达式提取文本,regex,scala,Regex,Scala,我最近才开始研究正则表达式,只知道基本知识,没有高级或更高级的学习内容。。。比如反向引用、环顾四周等 我有一个小问题需要解决,但我无法为它编写正则表达式。这个图案看起来很简单,但我不知道怎么写 字符串: [CS]v1|<bunch of alpha numberic text>[CE] 所以对于像这样的字符串 [CS]v1|2C33FAB2851D11F4-6000017080003FAF[CE] 上述代码将为我提供“2C33FAB2851D11F4600017080003FAF

我最近才开始研究正则表达式,只知道基本知识,没有高级或更高级的学习内容。。。比如反向引用、环顾四周等

我有一个小问题需要解决,但我无法为它编写正则表达式。这个图案看起来很简单,但我不知道怎么写

字符串:

[CS]v1|<bunch of alpha numberic text>[CE]
所以对于像这样的字符串

[CS]v1|2C33FAB2851D11F4-6000017080003FAF[CE]
上述代码将为我提供
“2C33FAB2851D11F4600017080003FAF”


但我真正想了解的是,是否有办法确定[CS]和[CE]之间的界限,并在两者之间获取文本。

您没有很好地描述您的需求。看起来您只需要一个简单的子字符串公式

val str = "[CS]v1|<bunch of alpha numberic text>[CE]"
val extract = str.substring(7, str.length-4)
val str=“[CS]v1 |[CE]”
val extract=str.substring(7,str.length-4)
但是如果你真的想使用正则表达式,这可能就行了

val str = "[CS]v1|<bunch of alpha numberic text>[CE]"
val extractor = "[^|]+\\|(.*)\\[..]".r
val extract = str match {
  case extractor(s) => s
  case _ => ""
}
val str=“[CS]v1 |[CE]”
val提取器=“[^ |]+\\\\\\\\(.*)\\[..]”。r
val extract=str匹配{
外壳拆卸器=>s
大小写=>“”
}

你会使用分组吗?我猜你还没有谈到RE的主题:(…但我确实用我尝试过的方法更新了我的问题…如果有帮助的话。这看起来像是我需要放在正则表达式解析器上,看看它能做什么..但它确实得到了结果..谢谢。
[^ 124;]+
=一切不是
\\\\\\
=然后是
(.*))
=捕获组;
\\[…]
=以括号内的2个字符结尾
val str = "[CS]v1|<bunch of alpha numberic text>[CE]"
val extractor = "[^|]+\\|(.*)\\[..]".r
val extract = str match {
  case extractor(s) => s
  case _ => ""
}