在java中通过regex获取字符串

时间:2012-03-16 06:41:26

标签: java regex

我需要一个正则表达式来匹配以下字符串:

input               --->  output
------------------------------
1*a12*asd*315       ---> a12
113-a12-asd*315     ---> a12
+1-a12-asd-315      ---> a12
as3-a12-asd*315     ---> a12
as3-a12-a           ---> a12
a-a12-a             ---> a12
a-a12-aas           ---> a12
-a12-aas-asd        ---> a12
*a12*aas*asd        ---> a12
a*a12*aas*sd        ---> a12

希望例子就足够了。我试过的是:

(^(?=.{1,3}$)-([a-zA-Z])-(?=.*)$)

但没有工作?什么是正确的正则表达式?


我使用a12的例子。它可以是任何东西。我不知道字符串是什么,需要提取它。

2 个答案:

答案 0 :(得分:0)

您可以使用

代替正则表达式
input.contains("a12");

知道它是否有该字符串。

或者如果你想要字符串,那么你可以使用

input.copyValueOf({'a','1','2'});

答案 1 :(得分:0)

您可以使用如下表达式:

([*-])([a-zA-Z\d]+)\1

成功匹配后,所需的值将在第二个捕获组中。