#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
или aString[]
/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]