我有一篇用 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/