我必须解析包含目录的文档。生成的文档包含一些不属于目录的文本,例如页眉和页脚。
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/