0
В настоящее время я хочу извлечь токен, который является содержимым в строковом формате. Я уже видел this topic, но в моем контексте мне не удается извлечь токен. У меня этот код:Java регулярное выражение извлекает специальную строку между двумя строками
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SOAPParsing {
public static void main(String[] args) {
String test = "<BinarySecurityToken Id=\"TotoToken\">Kqdsqd/Jxugtqsk6Ws3q3sd54sq6d4q6sd4qs6d4qs6dq6sd98d69qdq9dsq7d98q7sdqdq7qsddq7Mw2RMmhevkJt/4q6sd7qsIRveuTTqdqsa/zxqsdqdqNg==</BinarySecurityToken>";
Pattern pattern = Pattern.compile("BinarySecurityToken\\\\Id=\"TotoToken\">\\s:\\s(.+?)\\</BinarySecurityToken>");
Matcher matcher = pattern.matcher(test);
if (matcher.find()) {
System.out.println(matcher.group(1));
} else {
System.out.println("nothing ..");
}
}
}
Как я могу исправить мою проблему?
Спасибо заранее,
Попробуйте регулярное выражение в некоторых онлайн-инструмент первым, то есть без Java побега. В качестве примера: как вы думаете, '' \\ '(неэкранированная версия) после' BinarySecurityToken' должна совпадать? – Thomas
Спасибо за ваш ответ, но я ничего не получаю –
С одной стороны, часть вашего Regex, \ s: \ s ищет совпадение [whitespace]: [whitespace], которое не отображается в вашей строке. Поэтому, даже если все остальное было правильным (что я сомневаюсь), оно все равно не будет соответствовать. Как сказал Томас, Google «Regex Tester» и заставить шаблон работать до того, как вы начнете заполнять его на Java. – Duston