Мне нужно получить строку, которая находится между символами # (String) #.Формат Java Matcher для строки # xxx #
Как я могу это достичь?
Мне нужно получить строку, которая находится между символами # (String) #.Формат Java Matcher для строки # xxx #
Как я могу это достичь?
Вы можете использовать регулярные выражения, как это:
Pattern p = Pattern.compile("#(.*?)#");
Matcher m = p.matcher(yourString);
System.out.println(m.find() ? m.group(1) : "No match");
Или, можно разделить на #
:
String[] tokens = yourString.split("#");
System.out.println(tokens.length >= 3 ? tokens[1] : "No match");
Это будет оба получают первый токен, т. е. если yo u имел this#is a#string#it is stringy#okay
он бы вернулся is a
. Если вам нужно, чтобы оно совпадало с первым #
до последнего, вы можете изменить регулярное выражение, удалив ?
(ленивый соответствующий символ).
Если вы хотите получить все жетоны, просто напечатайте все значения во втором примере, а не только на втором индексе.
Попробуйте indexOf
и substring
методы String class.
String str = "#(String)#";
String result = str.substring(str.indexOf("#")+1 , str.lastIndexOf("#"));
Есть ли что-нибудь, что вы сделали, чтобы попытаться решить эту проблему? Мы будем более охотно отвечать на ваш вопрос, если вы скажете нам, что вы пробовали до сих пор. (Полезные ссылки для уточнения вопросов: [ask], [FAQ]) – Doorknob
Я пробовал [\\ s \\ u00A0] {2,} | [[\\ s \\ u00A0] && [^]]. Но не working – Sagar
Немного исследований, безусловно, решит вашу проблему. – fareed