|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
Есть некая строка в которой слова разделены двумя пробелами, а буквы разделены одинарным пробелом. Усложним задачу. Слова могут быть разделены сочетанием: одного из пробельных символов (например, \n) и произвольным количеством пробелов. Нужно с помощью регулярки разделить эти слова. Вот не придумывается красивого решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 16:26 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
Удали одинарные пробелы и дальше задача - тривиальна. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 16:32 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
mayton Удали одинарные пробелы и дальше задача - тривиальна. Одинарные пробелы удалять нельзя. Пока сделал так: Код: plaintext 1. 2. 3.
Но тут явное предположение, что кроме пробела есть только три пробельных символа. Но это же не факт? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 16:37 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav Слова могут быть разделены сочетанием: одного из пробельных символов (например, \n) например - это лирика ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 16:45 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav Но тут явное предположение, что кроме пробела есть только три пробельных символа. Но это же не факт? Покажи нам живой пример этой чертовой строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 16:49 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
mayton petrav Но тут явное предположение, что кроме пробела есть только три пробельных символа. Но это же не факт? Покажи нам живой пример этой чертовой строки. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 16:53 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
По сути, нам для сплита нужно придумать выражение: количество пробелов >= 2 или любой пробельный символ (но не единичный пробел) в сочетании любых других пробельных символов в количестве >= нуля (с обеих сторон). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 17:30 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav По сути, нам для сплита нужно придумать выражение: количество пробелов >= 2 или любой пробельный символ (но не единичный пробел) в сочетании любых других пробельных символов в количестве >= нуля (с обеих сторон). "\s\s+" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 17:41 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
В регулярках есть Quantifiers. Они считают количество штук символов. И символы у тебя - это спейсеры. Ты правильно написал \\s туда входят и пробелы и ентеры и табуляторы и всякие мляцкие прогоны страниц на принтерах. Как-то будет так. Код: sql 1.
Вот шпаргалка хорошая по регуляркам. Иногда заглядываю туда. https://cheatography.com/davechild/cheat-sheets/regular-expressions/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 17:42 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
mayton В регулярках есть Quantifiers. Они считают количество штук символов. И символы у тебя - это спейсеры. Ты правильно написал \\s туда входят и пробелы и ентеры и табуляторы и всякие мляцкие прогоны страниц на принтерах. Как-то будет так. Код: sql 1.
Вот шпаргалка хорошая по регуляркам. Иногда заглядываю туда. https://cheatography.com/davechild/cheat-sheets/regular-expressions/ Ну и как? Это не будет работать с такой строкой: Код: plaintext
Тут разделены слова! 2White Owl: Тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 17:45 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
У меня нету QT под рукой. Вот пишу на другом языке но принцип - тот-же. Убрал пробельчики и разделил по спейсерам. Код: python 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 17:51 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
mayton У меня нету QT под рукой. Вот пишу на другом языке но принцип - тот-же. Убрал пробельчики и разделил по спейсерам. Код: python 1. 2.
Я уже говорил: нельзя удалять единичные пробелы. Кроме того тут ты вообще все пробелы удаляешь, а не только единичные. ИМХО. Смотри. Слова могут быть разделены следующими токенами: - Количество пробелов >= 2. - Любой пробельный символ, но не пробел. В окружении N пробельных символов, где N >= 0. С обеих сторон. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 17:56 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav Слова могут быть разделены следующими токенами: - Количество пробелов >= 2. - Любой пробельный символ, но не пробел. В окружении N пробельных символов, где N >= 0. С обеих сторон. Код: javascript 1.
разрежется всё, кроме '2 3' - там только один простой пробел. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 19:19 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
когда уже придёт понимание... "пишете исходную строку" "пишете требуемую строку" а это переливание из "а что если так" в "ну блин мне надо не так" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 19:29 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
Имя пользователя1 petrav Слова могут быть разделены следующими токенами: - Количество пробелов >= 2. - Любой пробельный символ, но не пробел. В окружении N пробельных символов, где N >= 0. С обеих сторон. Код: javascript 1.
разрежется всё, кроме '2 3' - там только один простой пробел. Это, я так понимаю, JavaScript? Но не это важно. Тут снова делается жёсткое предположение, что кроме пробела есть только три пробельных символа. А на самом деле это множество не определено с точки зрения исходного кода. В этом то и есть основная проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 19:31 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
Напиши нам 2-3 варианта, как оно ещё может быть. Пойдем от TDD. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 21:01 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav, это что? задача по выделению слов из юникода? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 23:31 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav, Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 23:47 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 00:22 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
Как выше отметили, еще бы уточнить кодировку у исходных файлов ASCII или UTF-8,Unicode или какой-нибудь UTF-32, тут возможны варианты, в том числе зависят от конкретной реализации парсера. Плюс спросить, что они имеют ввиду под "пробелом" и также могут ли слова содержать цифры и всякие знаки. Если могут то \w заменить на \S. Пример: Код: plsql 1.
или Код: plsql 1.
\w, \h, \s - по идеи должны работать везде (на всех кодировках, если их поддерживает парсер). \h - горизонтальный пробел (включая табы и всякие модные пробелы ...) Но если нужен именно пробел в unicode, то можно вообще кондово прописать конкретный код - \x{0020} = U+0020 SPACE Код: plsql 1.
https://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=oct ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 01:21 |
|
Разделение слов в строке с помощью регулярного выражения
|
|||
---|---|---|---|
#18+
petrav Тут снова делается жёсткое предположение, что кроме пробела есть только три пробельных символа. А на самом деле это множество не определено с точки зрения исходного кода. В этом то и есть основная проблема. Код: javascript 1.
(?![ ])\s - перед пробельным символом стоит условие "сейчас не будет пробела" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 10:15 |
|
|
Start [/forum/topic.php?fid=16&tid=1339632&gotonew=1]: |
0ms |
get settings: |
1ms |
get forum list: |
7ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
28ms |
get topic data: |
4ms |
get first new msg: |
2ms |
get forum data: |
1ms |
get page messages: |
21ms |
update_topic_read_status (1339632): 14.09.2021 10:15:14: |
0ms |
get tp. blocked users: |
0ms |
get online users: |
19ms |
check new: |
1ms |
others: | 111ms |
total: | 197ms |
0 / 0 |