java中关于正则表达式的问题

[color=darkred]我查看,字符串中是否存在“80,”或者"80,"或者",80,"这三种情况,例如:"169,172009012410208000000,1,80,193,186,185" 返回存在或者不存在

String str = "169,172009012410208000000,1,80,193,186,185";
boolean flag = str.matches("正则表达式");

请教各位,这个正则该如何写呢[/color]

[code="java"]Pattern.compile("^.*((80,)|(,80))+.*$");[/code]
这样.

boolean flag = str.matches("^.*,?80,?.*$");

不用判断左边的逗号了吧?
[quote]我查看,字符串中是否存在“80,”或者"80,"或者",80,"这三种情况,例[/quote]

这是2种情况吧,有"80,"就行了?

[code="java"]Pattern.compile("^.*(80,)+.*$");[/code]

[quote]有种情况避免不了啊:如String str = "169,172009012410208000000,1,180,10,193,186,185";
这也是返回到的true,我只要找单个的80, [/quote]

是返回true的啊,我的意思是:

",80," 这种情况是在 "80," 之后的,
如果有"80,"存在就可以返回true了.

[code="java"]Pattern.compile("^.*(80,)+.*$"); [/code]
可以满足了.

[quote]这种条件是不能满足的:169,172009012410208000000,1,1801,10,193,186,185,80 [/quote]

这个...题意不符啊...

[quote]我查看,字符串中是否存在“80,”或者"80,"或者",80,"这三种情况,例[/quote]

你没说有 ",80" 的.......

8) :arrow:

[code="java"]Pattern.compile("^.*(((80,)+)|((,80,)+)|((,80)+)).*$");[/code]

你的加工下就行了.不过看起来有点哆嗦,试试优化下.