java - 需要帮助来解析目录的正则表达式

标签 java regex

我必须解析包含目录的文档。生成的文档包含一些不属于目录的文本,例如页眉和页脚。



2.1 some_text 100
2.1. some_text 100
some_text 100

我写了一个正则表达式来验证文本是否是目录的一部分。


(\d+(\.\d*)?)(.*)(\d{1,3})

但是,它通过了以上所有文本。我希望它在第三个文本中失败,即 some_text 100。

请帮忙。

最佳答案

您需要在多行模式(行首)中使用 anchor ^:

(?m)^(\d+(\.\d*)?)(.*)(\d{1,3})

参见 demo

您甚至可能想用 $ anchor 检查数字是否在行尾:

(?m)^\d+(?:\.\d*)?.*\d{1,3}$

请注意,我从最后一个正则表达式中删除了所有捕获组以保持其清洁。如果您打算使用捕获的文本,您可以还原它们。

关于java - 需要帮助来解析目录的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202888/

相关文章:

java - SimpleDateFormat android 没有按预期格式化

java - android中的客户端服务器

java - 在类中创建类的对象

完整字符串正则表达式的Java字符串分析

php: 从字符串中删除括号/内容?

Java 不会因双逗号而崩溃 "malformed line"

javascript 字符串正则表达式(css有效性检查+转换)

java - 是否可以使用Java在静态方法中创建静态对象

ruby-on-rails - 通过正则表达式解析字符串

java - Spring boot应用程序中无法解析占位符