2013-03-17 3 views
-2

Может кто-нибудь помочь мне построить регулярное выражение, чтобы поймать "#" и ряд чисел в строке?Регулярное выражение для улова # и ряда чисел

Пример: "asdadadsa #12345 asdasdasd #67" в этой строке Мне нужно заменить #12345 и #67 на ссылку, такую ​​как "com.package.name://#12345". Я работаю в java, но я надеюсь, что это общий вопрос.

+0

вы пытались что-то? –

+0

Я пытаюсь разобрать строковый символ char, но я не думаю, что это лучший подход –

+0

@ethe: вы получите помощь, как только вы покажете, что вы пробовали, и почему это не сработало. Отправьте свой код (сделайте его коротким и сладким: http://sscce.org/) – chr

ответ

2

Вам нужно взглянуть на основное регулярное выражение, google-руководство/руководство.

на ваш вопрос, попробуйте следующую строку:

String str ="asdadadsa #12345 asdasdasd #67"; 
String newString = str.replaceAll("#\\d+", "com.package.name://#12345"); 

тогда newString будет:

asdadadsa com.package.name://#12345 asdasdasd com.package.name://#12345 

EDIT на основе комментарий OP в

, то вы можете ссылаться на соответствие часть $0, $1, $2...0,1,2 - это индекс группы.

Так линия превращается в:

String newString = str.replaceAll("#\\d+", "com.package.name://$0"); 

не newString должны иметь ожидаемое значение.

+0

спасибо за это, но содержание замены должно быть результатом самого поиска. В моем примере: "asdadadsa # 12345 asdasdasd # 67" должно быть "asdadadsa com.package.name://#12345 asdasdasd com.package.name://#67" –

+0

@ см. Редактировать. – Kent

0

Я решил с помощью:

message.replaceAll("[#][0-9]+", "<a href=\"$0\">$0</a>"); 

Благодаря

Смежные вопросы