RegEx удаляет все, кроме последнего символа

У меня есть строка из нескольких строк, структурированных аналогично этой, и я хочу удалить все, кроме последнего символа. Может ли кто-нибудь посоветовать регулярное выражение, все, что я нашел до сих пор, было удалить все после шаблона и просто получить P, T, U

и т. д., и для всех этих строк я хочу получить: <name>Doc_TEMPLATE_P <name>Doc_TEMPLATE_T <name>Doc_TEMPLATE_U


person cherissemunja    schedule 01.07.2015    source источник
comment
1. какой язык вы используете? 2. что ты пробовал? 3. зачем вам регулярное выражение? это задача, которую можно легко выполнить с помощью string.length   -  person Nir Alfasi    schedule 01.07.2015
comment
java было бы хорошо, я получил это ^[^_]*_, но он делает противоположное тому, что я хочу, вместо того, чтобы удалять после его удаления раньше.   -  person cherissemunja    schedule 01.07.2015


Ответы (2)


Как я уже писал в комментариях выше, вы можете (и должны) использовать string.length для получения только последнего символа — в этом случае нет никакой дополнительной ценности для использования регулярного выражения!

String str = "<name>Doc_TEMPLATE_P";
str = str.substring(str.length()-1);
System.out.println("str = " + str); // prints: "str = P"
person Nir Alfasi    schedule 01.07.2015
comment
Я отмечу ответ как правильный, но в моем конкретном случае он неприменим, потому что я использую функцию регулярных выражений, интегрированную в другое приложение. Таким образом, регулярное выражение было бы лучше, чем строка str - person cherissemunja; 01.07.2015

В Java вы можете сделать:

str = str.replaceAll("^(.*_).*", "$1P");

Демо RegEx

person anubhava    schedule 01.07.2015
comment
Вы проверили связанную демонстрацию? Он возвращает <name>Doc_TEMPLATE_P для каждой строки. - person anubhava; 01.07.2015
comment
Я отмечу ответ как правильный, но в моем конкретном случае он неприменим, потому что я использую функцию регулярных выражений, интегрированную в другое приложение. - person cherissemunja; 01.07.2015
comment
Это копирование/вставка вашего комментария вашего комментария к другому ответу, но мой ответ действительно использует только регулярное выражение - person anubhava; 01.07.2015
comment
извините за копирование и вставку, я видел из вашей демонстрации, что она работает, однако, когда я запускаю ее в своем приложении, она не возвращает никаких значений - person cherissemunja; 01.07.2015
comment
Я могу работать только над опубликованной проблемой. Если какой-то код отсутствует или показан, трудно догадаться, что не так. - person anubhava; 01.07.2015