java - 用于获取多行字符串中 2 个标签之间的内容的正则表达式

标签 java regex

我正在尝试使用 Java 中的正则表达式从 2 个标签之间的多行字符串中提取内容。例如,内容可能如下所示:

--_000_CAKETFEgg78oKKJPNySnxF4BgQoh9ifHP4XzXGeJddUvOtz5wmailgm_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

hello test

...

..
!@#!@%$#^%$&*^(*)*()
..
..
..



..


--_000_CAKETFEgg78oKKJPNySnxF4BgQoh9ifHP4XzXGeJddUvOtz5wmailgm_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

hello test<br><br>..<br>!@#!@%$#^%$&*^(*)*()<br>.<br><br>.<br>.<br>.<br><br><br><br>.<br><br>

--_000_CAKETFEgg78oKKJPNySnxF4BgQoh9ifHP4XzXGeJddUvOtz5wmailgm_

我只想提取 --_000_CAKETFEgg78oKKJPNySnxF4BgQoh9ifHP4XzXGeJddUvOtz5wmailgm_ 边界之间的内容。

我使用了如下所示的正则表达式:--_000_CAKETFEgg78oKKJPNySnxF4BgQoh9ifHP4XzXGeJddUvOtz5wmailgm_\n?[.\n]+\n?--_000_CAKETFEgg78oKKJPNySnxF4BgQoh9ifHP4XzXGeJddUvOtz5wmailg m_

但是这不起作用。我的正则表达式应该是什么来提取内容?另外,提取时,边界标签是否会与内容一起包含在内?

最佳答案

我强烈建议不要使用正则表达式进行解析。他们不太适合这样做。只需编写一个解析器来迭代您的输入,搜索开始标记,设置标志,记录所有后续行,识别结束标记并重置标志。比正则表达式更容易完成并且更灵活。

关于java - 用于获取多行字符串中 2 个标签之间的内容的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7875526/

相关文章:

java - 为什么下面的代码可以编译?

java - 如何设置@OneToOne映射的约束名称?

regex - 使用 sed 查找和替换一系列数字

regex - Hive:在列名中使用 Concat

python - python中不区分大小写的字符串替换

javascript - 正则表达式 - 记录右组(Javascript)

java - java代码创建或不创建的String对象

java - 在 JavaFX 中设置按钮操作时出现 "Cannot find symbol constructor, EventHandler does not take parameters"

java - 当 ComponentOrientation 设置为 RTL 时 JLabel 和 JTextField 之间的不一致

ios - Objective-c 正则表达式错误