Форум — Development Получить слово на основании части слова из строки java, regexp 0 2 Как?Пример: aaa bbb ccdddfff gg Есть подстрока ddd, мне нужно получить ccdddfff Ссылка
Ответ на: комментарий от Legioner 10.02.18 01:18:36 MSK не работает bvn13 ★★★★★ (10.02.18 01:29:36 MSK) автор топика Ссылка
Ответ на: комментарий от Legioner 10.02.18 01:18:36 MSK даже Pattern REGEX = Pattern.compile("(\\w\\S*"+data[1]+"\\S*\\W)"); не работает bvn13 ★★★★★ (10.02.18 01:37:52 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от bvn13 10.02.18 01:37:52 MSK А \w в Java вообще поддерживается? KennyMinigun ★★★★★ (10.02.18 01:47:48 MSK) Последнее исправление: KennyMinigun 10.02.18 01:47:56 MSK (всего исправлений: 1) Показать ответ Ссылка
Ответ на: комментарий от KennyMinigun 10.02.18 01:47:48 MSK пишут, что да bvn13 ★★★★★ (10.02.18 01:51:57 MSK) автор топика Ссылка
Legioner, KennyMinigunВот код на погонять. String phrase = "этот исскуственный загон"; String word = "исскуств"; String correction = "искусств"; Pattern REGEX = Pattern.compile("(\\w\\S*"+word+"\\S*\\W)", Pattern.UNICODE_CHARACTER_CLASS | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.LITERAL); Matcher matcher = REGEX.matcher(phrase); if (matcher.find()) { String w = matcher.group().replace(word, correction); System.out.println(""+matcher.group()+" - "+w.trim()); } bvn13 ★★★★★ (10.02.18 02:03:18 MSK) автор топика Показать ответы Ссылка
Ответ на: комментарий от bvn13 10.02.18 02:03:18 MSK import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { private static String REGEX = "\\w*ddd\\w*"; private static String INPUT = "aaa bbb ccdddfff gg"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); if (m.find()) { System.out.println(m.group(0)); }else{ System.out.println("НЕ СОВПАДАЕТ"); }; } } anonymous (10.02.18 02:17:14 MSK) Ссылка
Ответ на: комментарий от bvn13 10.02.18 02:03:18 MSK String phrase = "а роза упала на лапу азора"; String subword = "оз"; Pattern pattern = Pattern.compile("\\w*" + subword + "\\w*", UNICODE_CHARACTER_CLASS); Matcher matcher = pattern.matcher(phrase); while (matcher.find()) { String word = matcher.group(); System.out.println(word); } Legioner ★★★★★ (10.02.18 02:17:44 MSK) Последнее исправление: Legioner 10.02.18 02:18:12 MSK (всего исправлений: 1) Показать ответ Ссылка
Ответ на: комментарий от Legioner 10.02.18 02:17:44 MSK рояль в кустах а на самом деле он хотел replace ))) anonymous (10.02.18 02:21:08 MSK) Показать ответ Ссылка
Ответ на: рояль в кустах от anonymous 10.02.18 02:21:08 MSK Я так и не понял, что он хотел, если честно. Но в классе Matcher есть методы replaceAll и др. для замены. Legioner ★★★★★ (10.02.18 02:53:30 MSK) Ссылка
Ответ на: комментарий от bvn13 10.02.18 02:03:18 MSK Я бы советовал не забывать делать Pattern.quote() для word. sanwashere ★★ (10.02.18 13:26:33 MSK) Ссылка