Как извлечь строку между двумя разграничителями [дубликат] -- java поле с участием string поле с участием split пол Связанный проблема

How to extract a string between two delimiters [duplicate]


49
vote

проблема

русский
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»>
Этот вопрос уже есть ответы здесь :
Закрыто 8 лет назад .

<Сильный> Возможный дубликат:
Подстрока между двумя делимитрами

У меня есть строка, такая как

"ABC [Это для извлечения]"

Я хочу извлечь часть <код> "This is to extract" в Java. Я пытаюсь использовать разделение, но не работает так, как я хочу. У кого-нибудь есть предложение?

Английский оригинал

Possible Duplicate:
substring between two delimiters

I have a string like

"ABC[ This is to extract ]"

I want to extract the part "This is to extract" in java. I am trying to use split, but it is not working the way I want. Does anyone have suggestion?

</div
        
       
       

Список ответов

97
 
vote
vote
Лучший ответ
 

Если у вас есть только пара кронштейнов (<код> [] ) в вашей строке, вы можете использовать <код> indexOf() :

 <код> String str = "ABC[ This is the text to be extracted ]";     String result = str.substring(str.indexOf("[") + 1, str.indexOf("]"));   
 

If you have just a pair of brackets ( [] ) in your string, you can use indexOf():

String str = "ABC[ This is the text to be extracted ]";     String result = str.substring(str.indexOf("[") + 1, str.indexOf("]")); 
</div
 
 
   
   
67
 
vote

Если есть только 1 вхождение, ответ Ивановича - лучший способ. Но если есть много вхождений, вы должны использовать Regexp:

<Код> [(.*?)] Это ваш шаблон. А в каждом <код> group(1) получит вам свою строку.

 <код> Pattern p = Pattern.compile("\[(.*?)\]"); Matcher m = p.matcher(input); while(m.find()) {     m.group(1); //is your string. do what you want }   
 

If there is only 1 occurrence, the answer of ivanovic is the best way I guess. But if there are many occurrences, you should use regexp:

[(.*?)] this is your pattern. And in each group(1) will get you your string.

Pattern p = Pattern.compile("\[(.*?)\]"); Matcher m = p.matcher(input); while(m.find()) {     m.group(1); //is your string. do what you want } 
</div
 
 
   
   
9
 
vote

попробуйте как

 <код> String s = "ABC[ This is to extract ]";         Pattern p = Pattern.compile(".*\[ *(.*) *\].*");         Matcher m = p.matcher(s);         m.find();         String text = m.group(1);         System.out.println(text);   
 

Try as

String s = "ABC[ This is to extract ]";         Pattern p = Pattern.compile(".*\[ *(.*) *\].*");         Matcher m = p.matcher(s);         m.find();         String text = m.group(1);         System.out.println(text); 
</div
 
 
7
 
vote
 <код>   String s = "ABC[This is to extract]";      System.out.println(s);     int startIndex = s.indexOf('[');     System.out.println("indexOf([) = " + startIndex);     int endIndex = s.indexOf(']');     System.out.println("indexOf(]) = " + endIndex);     System.out.println(s.substring(startIndex + 1, endIndex));   
 
  String s = "ABC[This is to extract]";      System.out.println(s);     int startIndex = s.indexOf('[');     System.out.println("indexOf([) = " + startIndex);     int endIndex = s.indexOf(']');     System.out.println("indexOf(]) = " + endIndex);     System.out.println(s.substring(startIndex + 1, endIndex)); 
</div
 
 

Связанный проблема

0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change  ( Testing case where null should be returned using restcontroller with mockito fai ) 
Я хочу проверить корпус NullPointexception, который следует бросить контроллер, который я проверяю, но я всегда получаю ошибку NullPointexception. Я пытаюсь п...

1  Могу ли я нажать на свой собственный объект пользователя в Security SecurityContext?  ( Can i push my own user object into springs securitycontext ) 
Я новичок в весенней безопасности и последовал за некоторыми основными рецептами, чтобы получить весеннюю безопасность, работающую в моем заявлении, но теперь...

0  ConstanaintValidator - сделать JPA сделать проверку после ввода  ( Constraintvalidator make jpa make the validation after input ) 
Можно ли сделать JPA проверить вход сразу после типов пользователей в чем-либо? Я использую EclipseLink. Я не хочу ждать, пока JPA сохраняется для проверк...

1  Как увеличить предел параллельного соединения OpenFire?  ( How to increase openfire concurrent connection limit ) 
Я пытаюсь проверить, сколько одновременных пользовательских подключений Openfire может обрабатывать. Я заметил предел при 4000 пользователями. Как я могу ...

4  Как полностью квалифицировать класс, имя пакета которого сталкивается с местным именем члена?  ( How to fully qualify a class whose package name collides with a local member nam ) 
ОК, вот очень любопытная языковая головоломка Java 7 для специалистов JLS там. Следующий кусок кода не скомпилируется, ни с Javac, ни с Eclipse: <код> ...

0  Java нерешенная переменная JPanel?  ( Java unresolved jpanel variable ) 
Почему не может <код> aniPanel быть разрешена в переменной. Я пробовал <код> AniPanel aniPanel = new AniPanel(); Но это не решает проблему. Я также по...

1  Кварц Schdeuler для нескольких проектов в JBOSS 5  ( Quartz schdeuler for multiple projects in jboss 5 ) 
Я развернул два проекта (P1 & AMP; P2) в JBOSS 5. Оба проекта настроены с различными кварцевыми планировщиками. Но когда я заплатурую работу на P1, он доступа...

1  Улучшение моего жадного алгоритма  ( Improving my greedy algorithm ) 
** Это мой код, который выглядит способ найти сумму в массиве ** <код> public class Piecedemonei { public static void recherche(int[] tab) { ...

-2  В классе F250.java есть две петли, которые не будут работать  ( There are two loops in the f250 java class that wont run ) 
Класс F250.java - это объект оружия, и есть два метода, которые привлекают и обновляют пули, выходящие из пистолета. Я сделал класс пули и сделал массив пули ...

0  Строка заменить приключение в Java  ( String replace adventure in java ) 
Я пытаюсь добиться этого - если строка содержит шаблон <код> %25 с последующим любое количество альфа-цифровых символов, то мне нужно заменить <код> %25 с <...

56  Когда использовать явное ожидание против неявного ожидания в Webdriver Selenium?  ( When to use explicit wait vs implicit wait in selenium webdriver ) 
Я использую: <код> driver.manage().timeouts().implicitlyWait(180, TimeUnit.SECONDS); Но он все еще непрерывно не работает для нижеизведанного элемента ...

12  Способ вызова в EJB на jboss запустить [дубликат]  ( Call method in ejb on jboss startup ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

1  Обратитесь к веб-странице внутри файла JAR  ( Refer to a web page inside a jar file ) 
У меня есть рабочий проект. Он включает в себя другой проект, который имеет дело с отдыхом как REST-API.jar. Теперь я сделал одностраничное интернет-интерфе...

0  Общее утверждение для ошибки recuralandom return - Java  ( General statement for securerandom return error java ) 
Я искал на протяжении разных форумов, и теперь я наконец-то ставит свой вопрос, так как я не могу найти конкретный ответ. Я пишу протокол безопасности для д...

1  Простое Javaee HTML Get / Post Application  ( Simple javaee html get post application ) 
Я просто начинаю с Javaee (я вполне свободно владею в Javase), и у меня возникли проблемы с обездованием моего мозга вокруг всех новых вещей, которые необходи...

Связанный проблема

0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change 
1  Могу ли я нажать на свой собственный объект пользователя в Security SecurityContext? 
0  ConstanaintValidator - сделать JPA сделать проверку после ввода 
1  Как увеличить предел параллельного соединения OpenFire? 
4  Как полностью квалифицировать класс, имя пакета которого сталкивается с местным именем члена? 
0  Java нерешенная переменная JPanel? 
1  Кварц Schdeuler для нескольких проектов в JBOSS 5 
1  Улучшение моего жадного алгоритма 
-2  В классе F250.java есть две петли, которые не будут работать 
0  Строка заменить приключение в Java 
56  Когда использовать явное ожидание против неявного ожидания в Webdriver Selenium? 
12  Способ вызова в EJB на jboss запустить [дубликат] 
1  Обратитесь к веб-странице внутри файла JAR 
0  Общее утверждение для ошибки recuralandom return - Java 
1  Простое Javaee HTML Get / Post Application