匹配模式,除非匹配是空字符串

时间:2016-01-19 03:46:59

标签: java regex

我在Java中有一个RegEx似乎适用于所有带内容的实例,但它不仅仅是将实例与内容匹配;它也匹配空字符串。由于我匹配的数据,所有"部分" RegEx必须是可选的,但是我无法指定如果一个部分不存在,则另一部分必须存在,反之亦然(大部分时间) ,两个部分都存在。)

我目前的RegEx:(-?[0-9]*)(x\\^?([0-9]*))?

要重复,这在匹配现有字符时有效。我只是想阻止它在字符之间匹配一个空字符串,这会抛弃我方法的其余部分。

编辑:特定测试字符串我使用: "4x^5+x^4+2x^3-16x^2+3x-1000"

1 个答案:

答案 0 :(得分:1)

尝试这种模式

(?=[0-9x-])((?:-?[0-9]*)(?:x\\^?(?:[0-9]*))?)

添加一个必须与您的条件匹配的前瞻(?=[0-9x-]) Demo