ruby - 匹配两个字符之间有换行符的字符串
问题描述
如何在 Ruby 中匹配两个星号之间的换行符?我有这个字符串
Foo **bar**
test **hello
world** 12345
我只想找到
**hello
world**
我试过了,\*{1,2}(.*)\n(.*)\*{1,2}
但这匹配
**bar**
test **
我玩了一个非贪婪的匹配器,\*{1,2}(.*?)\n(.*?)\*{1,2}
但这也不起作用,所以我希望有人能提供帮助。
解决方案
您可以使用
/\*{1,2}\b([^*]*)\R([^*]*)\b\*{1,2}/
细节
\*{1,2}
- 1 或 2 个星号\b
- 一个单词边界,下一个 char 必须是一个单词 char([^*]*)
- 第 1 组:任何 0+ 个字符,除了*
\R
- 换行序列([^*]*)
- 第 2 组:除此之外的任何 0+ 个字符*
\b
- 一个单词边界,前面的 char 必须是一个单词 char\*{1,2}
- 1 或 2 个星号
推荐阅读
- javascript - 从字符串JS中提取数据
- python - 尝试在朋友的 PC 上安装 PyCharm,但此对话框不断弹出,并且无法检测到解释器
- php - Payu(肯尼亚)使用 php 中的肥皂进行支付集成
- javascript - 在浏览器中保持 Flask 在没有网页的情况下运行
- c# - 将泛型类转换为不同的类型
- html - 为什么 Animated.css 不能按照网站上的说明工作?
- azure-sql-database - 是否有适用于 Azure 数据工厂、azure sql db 和 Synapse DB 的模拟器
- c# - 如何强制 Uri 使用 baseUri?
- docker - 如何将 NodePort 与 kind 一起使用?
- solr - Solr geodist() 函数返回什么测量单位?