java - 在 Java 的 String 中查找 markdown 图片语法

标签 java regex markdown

我有一篇用 Java 编写的长文本,其中至少包含一种 Markdown 图像语法。如果有 N markdown image 语法,我需要将字符串拆分为 N+1 子字符串并将它们存储在 String 数组中,调用 texts。例如,我有以下文字

Hello world!
![Alt text](/1/2/3.jpg)
Hello Stack Overflow!

然后 Hello world!\n 将存储在位置 0,\nHello Stack Overflow! 将存储在位置 1。对于我的问题,我们可以假设

  • Alt text 部分仅包含字符 A-Z、a-z 和空格。
  • URL 部分仅包含数字 0-9 和斜杠 /。它的扩展名只会是 .jpg。其他扩展将不存在。

我的问题是如何拆分文本?我们是否需要 java 正则表达式,例如 *![*](*.jpg)

最佳答案

试试这个(准备复制粘贴):

"!\\[[^\\]]+\\]\\([^)]+\\)"

参见 here有关如何获得比赛的信息。

“未受污染”版本: !\[[^\]]+\]\([^)]+\)

说明

  • ! 字面意思是 !
  • \[ 转义 [
  • [^\]]+尽可能多的不是]
  • \]\( 转义 ](
  • [^)]+尽可能多的不是)
  • \) 转义 )

关于java - 在 Java 的 String 中查找 markdown 图片语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391979/

相关文章:

java - Postgres UUID JDBC 不工作

java - 在 Java 中将 ASCII 码转换为 char

regex - 整个字符串与/.*/之后的第二个匹配是什么?

markdown - 在 Github table markdown 中禁用斑马条纹

html - Jekyll:在 Markdown 文件中包含 HTML 部分

java - java中的序列点

java - 如何将 Java 与带有嵌入式 Cassandra 的 Titan 连接起来

javascript - 行尾无法通过正则表达式删除或 trim Node.JS

c++ - 使 std::regex 静态化是个好主意吗?

html - 如何摆脱 Markdown 中的表格边框?