java - Scala:查找不以特定字符串结尾的最大字符串的正则表达式

标签 java regex scala

给定一个字符串,我需要找出在原始字符串中包含任何内容开头的最大字符串,但在看到定义的模式时停止。

例如,假设“\nwww.{Google}.comcomxxxcom”作为字符串,“com”作为结束模式,

我们需要“\nwww.{Google}”。结果。

我尝试做类似的事情

val filter = """[\\s\\S]*(?!com)""".r
filter.findAllIn("\nwww.{Google}.com").toArray

但结果不是我想要的。

我也尝试过其他可能性,但失败了。有人可以帮忙吗?

最佳答案

您可以使用

val filter = """^[\s\S]+?(?=com)""".r
val s = "\nwww.{Google}.comcomxxxcom"
print(filter.findFirstIn(s))
// => Some(
www.{Google}.)

请参阅Scala demo

详细信息

  • ^ - 字符串 anchor 的开头
  • [\s\S]+? - 第 1 组:任何 1+ 个字符,尽可能少,直到第一个
  • com - 匹配并使用。

请注意,由于您需要字符串中的单个匹配项,因此可以使用 findFirstIn 而不是 findAllIn

关于java - Scala:查找不以特定字符串结尾的最大字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984941/

相关文章:

java - 使用自定义参数匹配器第二次调用 Mockito.when 时的 NPE

java - 每天在中午 12 点和 23 点对一个 API 执行两次调用 :00 PM with Java and vertx

java - 正则表达式仅删除数字之间的空格

Javascript 正则表达式替换并添加找到的所有元素到数组

斯卡拉摇摆 : Changing BorderPanel central component new Component not visible

java - Maven 只选择 src/main/java 或 src/main/scala 作为源文件夹,从不选择两者

java - 加载properties文件获取键值对

python - 从字典 python 的键动态生成正则表达式

java - 使用正则表达式解析不同的语言环境/语言?

scala - Akka未加载application.conf