Регулярное выражение для добавления квадратных скобок в начало / конец предложения, а также каждое слово, разделенное запятой?

#java #regex

#java #регулярное выражение

Вопрос:

Какое регулярное выражение мне нужно использовать, чтобы добавить квадратные скобки в начало / конец предложения, а также каждое слово, разделенное запятой?

У меня есть такое предложение:

 qqqqqqq
asadsds
dsdadad
sadadad
asdsada
dsadadd";
  

Я ожидал получить такой результат:

 [qqqqqq, asadsds, dsdadad, sadadad, asdsada, dsadadd]
  

Я пробую много вещей, таких как:

 String regex1 = "(^[a-zA-z_0-9])(\s)([a-zA-z_0-9]$)";
  

Комментарии:

1. Результат a String или a String[] / List<String> ? Попробуйте text.split("\p{L} ")

2. Я имел в виду, text.split("\P{L} ")

Ответ №1:

Кажется, вам нужно разделить входную строку на несколько «слов», таким образом, исключая все символы, не содержащие буквы или слова, в качестве разделителей, используя String.split("\W ") или String.split("[^a-zA-Z] ") .

Затем повторно соедините очищенные слова, используя запятые и добавив скобки, которые могут быть предоставлены Arrays.toString методом.

Это может быть реализовано просто:

 String input = "qqqqqqq\nasadsds\ndsdadad\nsadadad\nasdsada\ndsadadd";";
System.out.println(input);
System.out.println("------------");
String result = Arrays.toString(input.split("\W "));
System.out.println(result);
  

Вывод:

 qqqqqqq
asadsds
dsdadad
sadadad
asdsada
dsadadd";
------------
[qqqqqqq, asadsds, dsdadad, sadadad, asdsada, dsadadd]