【发布时间】:2013-07-06 02:07:36
【问题描述】:
一个多小时以来,我一直在苦苦思索一个表情,但没有结果。所以是时候寻求帮助了。
在以下(多行)文本中:
华尔兹卷15
华尔兹卷。 15
华尔兹卷。 一个
华尔兹,卷15
卷15:华尔兹
粗体中的部分是我目前想出的正则表达式的匹配项:(?!^),*\s*(?:vol[ume]*\.*)\s*(?=[0-9A-Z]+)
所有都正确,除了最后一个,因为它位于行首,所以不应该包括在内。
据我从http://www.regular-expressions.info/refadv.html 的文档中可以看出,表达式中的(?!^) 环视部分应该排除,*\s*(?:vol[ume]*\.*)\s*(?=[0-9A-Z]+) 在行首找到的匹配项,但这似乎不起作用。
另一方面,表达式(?!^)op[us]*\.*\s*(?=[0-9]+) 可以正常工作,并且不会在以下文本的最后一行返回匹配项:
华尔兹 op. 15
华尔兹作品15
作品 15:华尔兹舞
第一个表达式我做错了什么?
【问题讨论】:
-
您的第二个正则表达式与最后一行的“opus”匹配。
标签: java regex regex-lookarounds