regex - 在 Scala 中获取正则表达式匹配的索引
问题描述
如何在 Scala 中获取字符串上的正则表达式匹配的索引?
val body = "This is a 'long string' with long string in it."
println(body.indexOf("long string")) // 11
println(body.indexOf("long string", 12)) // 37
// I'm looking for something like this:
"""\slong string""".r.findIndexIn(body) // Should give Some(36)
"""\slong string""".r.findIndexIn(body, 37) // Should give None
有没有一些简单的方法可以做到这一点,而无需循环查找匹配的字符s"^${myRegex}"
?还是我需要求助于使用 Java?
解决方案
Match
类包含描述特定正则表达式匹配的属性,包括它开始的位置。
像"foo".r.findFirstMatchIn(bar).map(_.start)
应该做你问的东西。
但是如果你真的只是在寻找一个子字符串,那么bar.indexOf("foo")
会快很多。
推荐阅读
- pagination - Azure 数据工厂 REST API 立即提供服务 - 分页问题
- reactjs - Devextreme DataGrid 与 Ag-Grid 相比如何反应?
- java - 即使使用 Optional<> 仍然会出现 NullPointerException
- scala - 案例类的字符串字段的修剪值
- c# - 无法使用 sendgrid api 发送附件
- python - Python中的蛇游戏使用Turtle图形错误
- python - 不确定从 Python 的这一点到哪里去?
- ios - 是否可以从一个 Apple Watch 应用程序重定向到另一个 Apple Watch?
- python - 从 panda DataFrame 创建一个 pd.Series 列表
- python - 如何在子类中执行和注入策略