Регулярные выражения?

Добрый день, сразу к делу
В textivew хранится текст, в котором попадаются структуры [id000|Иван Иванов]
Задача стоит в чтоб изменить его на <a href="vk.com/id000">Иван Иванов</a>
Можно ли это сделать стандартными средствами. Расскажите хоть в 2 словах. Огромной спасибо!
  • Вопрос задан
  • 309 просмотров
Решения вопроса 1
@KaktusTeam
MoneyApp ведение личного бюджета на Android
Добрый день,
На джаве это будет выглядеть примерно так:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String[] args) {
        String content = "В кабинет зашел [id000|Иван Иванов], а там уже сидит [id999|Петр Смирнов]";

        Pattern pattern = Pattern.compile("\\[id([0-9]+)\\|(.*?)\\]");
        Matcher m = pattern.matcher(content);

        StringBuffer sb = new StringBuffer();
        while (m.find()) {
            m.appendReplacement(sb, "<a href=\"vk.com/id$1\">$2</a>");
        }
        m.appendTail(sb);

        String result = sb.toString();
        System.out.println(result);
    }
}

Удачи!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
IonDen
@IonDen
JavaScript developer. IonDen.com
Ну можно как-то так: jsfiddle.net/IonDen/79e9e9jw

var raw = "В кабинет зашел [id000|Иван Иванов], а там уже сидит [id999|Петр Смирнов]";
console.log(raw);

function clean (text) {
    var r = text.replace(/\[id[0-9]+\|/gi, '');
    r = r.replace(/\]/gi, '');
    return r;
}

var newText = clean(raw);
console.log(newText); // В кабинет зашел Иван Иванов, а там уже сидит Петр Смирнов
Ответ написан
BuriK666
@BuriK666
Компьютерный псих
Тогда уж:
var raw = "В кабинет зашел [id000|Иван Иванов], а там уже сидит [id999|Петр Смирнов]";
var clean = raw.replace(/\[id[0-9]+\|(.*?)\]/gi,'$1');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы