【发布时间】:2018-02-26 09:14:55
【问题描述】:
给定一个字符串,我需要找出最大的字符串开头,它包含原始字符串中的anything,但在看到定义的模式时停止。 p>
例如,给定“\nwww.{Google}.comxxxcom”作为字符串,“com”作为结束模式,
我们想要“\nwww.{Google}”。结果。
我试图做类似的事情
val filter = """[\\s\\S]*(?!com)""".r
filter.findAllIn("\nwww.{Google}.com").toArray
但结果不是我想要的。
我也尝试了其他可能性,但失败了。有人可以帮忙吗?
【问题讨论】:
-
它在我的示例中有效,但如果给定的字符串是“xxxcomcom”,那么结果将是“xxxcom”,它仍然包含禁止模式...
-
那你需要一个惰性量词,
"""[\s\S]*?(?=com)""".r -
它得到了想要的答案,但在某些情况下会有一些空字符串。有什么方法可以摆脱它们?
-
能否请您发布一个具有预期输出的示例字符串?
-
当输入String为"xxcomcom{com"时,得到的Array为Array(xx, "", om, "", om{, "") 3个空String元素。