получить строку по регулярному выражению в Java - PullRequest
0 голосов
/ 16 марта 2012

Мне нужно регулярное выражение для сопоставления следующих строк:

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 голосов
/ 16 марта 2012

Вы можете использовать выражение вроде:

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

Желаемое значение будет во второй группе захвата после успешного сопоставления.

0 голосов
/ 16 марта 2012

Вместо регулярных выражений вы можете использовать

input.contains("a12");

чтобы узнать, есть ли у него эта строка или нет.

В противном случае, если вам нужна строка, вы можете использовать

input.copyValueOf({'a','1','2'});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...