java正则表达式可选,管道不工作

时间:2015-04-29 18:17:47

标签: java regex

大家好啊 我有以下正则表达式

String pattern1 = "([0-9+\\s|\\s])integer";

我正在使用下面的字符串。它假设选择"整数"和一个数字后面跟着空格,或者只是空格,如果之前没有数字。我想我必须亲近,但我已经整个上午都花了。非常感谢任何帮助 " BRTR val!http://www.w3.org/2001/XMLSchema# 78928458695整数整数33整数"

麻烦的是它可能是一个emptySpace +整数或数字+整数,没有特别的顺序。 我最接近的是

"\\d+\\s*integer(.*)"

但这并没有使它成为一种模式 - 它只有在"整数"之前有一个数字时才有效。并且只是获取字符串的其余部分,但我希望将其作为模式。

2 个答案:

答案 0 :(得分:0)

如果我了解你,我不确定。

如果你想要一个空格之前的数字或者不想要一个数字,那么你也可以只匹配空格和整数,不是吗?

那么,那将是\\sinteger

答案 1 :(得分:0)

鉴于您在整数之前检查空格的方式,您可以从括号中删除它。

现在你只是在寻找一个可选的整数,后跟一个空格,然后是'整数',所以你最终的正则表达式可以是:

"[0-9]*\\sinteger"

这匹配0个或更多个数字后跟一个空格,后跟单词integer。