|
|
|
Можно ли сделать компактнее регулярное выражение поиска числа по равномерной сетке?
|
|||
|---|---|---|---|
|
#18+
Анализируется текст, состоящий из положительных чисел, расположенных равномерно, а конкретнее: каждое число занимает 15 знаков начиная с конца, т.е. первые символы - пробелы (от 0 до 14 штук), а последующие символы - цифры от 1 до 15 штук. Лобовое RX, приходящее на ум, это объединение по ИЛИ выражений вида \s{n}\d{15-n} с перебором n от 0 до 14, т.е.: \s{14}\d{1}|\s{13}\d{2}|\s{12}\d{3}... и так далее до |d{15} Существует ли более компактное написание данного регулярного выражения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 20:48 |
|
||
|
Можно ли сделать компактнее регулярное выражение поиска числа по равномерной сетке?
|
|||
|---|---|---|---|
|
#18+
\s*\d+ А будет ли строка 15 символов или больше/меньше - это скорее всего вообще знать не нужно, либо хватит обычного length(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 20:54 |
|
||
|
Можно ли сделать компактнее регулярное выражение поиска числа по равномерной сетке?
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что это шаблон является частью более сложного шаблона и ловля объектов, выходящих за 15 знаков не очень приветствуется, хотя, вероятно, в 99% случаев этот шаблон сработает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 20:59 |
|
||
|
Можно ли сделать компактнее регулярное выражение поиска числа по равномерной сетке?
|
|||
|---|---|---|---|
|
#18+
Если мой хрустальный шар не врет, то у тебя строка типа: 123_____456789 И надо вытащить из нее 456? Тогда выкинь регулярки нафиг и просто разрежь строку по количеству символов. Будет и просто и надежно и быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 21:27 |
|
||
|
Можно ли сделать компактнее регулярное выражение поиска числа по равномерной сетке?
|
|||
|---|---|---|---|
|
#18+
Увы, дело несколько сложнее Имеем многострочный документ (точнее, разные по формату документы), имеющие свой формат, заполненный всяким мусором в виде строк заголовков, подитогов и т.п. Соответственно, надо выделить строки с данными, имеющие счетный набор описанных в начале блоков, в специфическом обрамлении, чтобы из них уже вытащить данные Поэтому, предполагалось с использованием стандартного механизма искать строки данных по составным шаблонам (выбранным из спискашаблонов для разныхтипов документов), а затем уже вытаскивать из этих срок данные по подходящему к конкретному случаю алгоритму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 21:43 |
|
||
|
Можно ли сделать компактнее регулярное выражение поиска числа по равномерной сетке?
|
|||
|---|---|---|---|
|
#18+
Тогда комбинируй. Сначала прогоняешь документ через регулярку которая на основе известного "специфического обрамления" решит это вообще правильная строк или нет? И если правильная, то выдаст тот кусок из строки который содержит нужную информацию. А вторым шагом режешь найденную подстроку по координатам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 22:15 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39318149&tid=1340595]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 383ms |

| 0 / 0 |
