Итак, несколько вещей появляются у меня:
Во-первых, ваше регулярное выражение выглядит правильно.Если вы когда-либо беспокоились о том, как будет работать ваше регулярное выражение, вы можете использовать https://regexr.com/, чтобы проверить это.Просто поместите свое регулярное выражение сверху и введите строку внизу, чтобы увидеть, соответствует ли она правильно
Во-вторых, после тщательного изучения я вижу, что вы используете функцию разделения.Хотя это удобно для быстрого разделения строк, вы должны быть осторожны в отношении того, что вы разделяете.В этом случае вы удаляете все строки, на которые изначально смотрели, что делает невозможным их поиск.Если вы распечатаете его, вы заметите следующее (для входной строки + d + = 3 = + s +):
+
+=3=+
+
Что показывает, что вы случайно вырезали то, что искали, чтобы найтина первом месте.Теперь есть несколько способов исправить это, в зависимости от ваших критериев.
Теперь, если вы хотели просто разделить все + и не важно, что вы нашли только то, что непосредственно ограничено + s, тогда split работает великолепно.Просто сделайте str.split("+")
, и это вернет вам список следующего (для + d + = 3 = + s +):
d
=3=
s
Однако вы можете видеть, что это создает несколько проблем.Во-первых, он не удаляет = 3 = то, что нам не нужно, а во-вторых, он не дает нам значений, которые заключены в формат + _ +, где подчеркивание представляет строку / символ, который выищу.
Видя, как вы используете + w, вы намерены найти слова, которые окружены + s.Однако, если вы просто ищете один символ, я бы предложил использовать другой, например, [az] или [a-zA-Z], чтобы быть более конкретным.Однако, если вы хотите найти несколько букв алфавита, ваш шаблон в порядке.Вы также можете добавить * (0 или более) или + (1 или более) в конце шаблона, чтобы указать, что именно вы ищете.
Я не дам вам ответ прямо, но я дам вам ключ к пониманию того, к чему двигаться.Попробуйте использовать шаблон и сопоставление, чтобы найти регулярное выражение, которое вы перечислили выше, а затем, если вы найдете совпадение, обязательно сохраните его где-нибудь :)
Кроме того, для дальнейшего использования всегда следует запускать имя функциив нижнем регистре, по крайней мере, в Java.Только прописные и имена классов должны начинаться с заглавной буквы :)