|
|
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
Например, есть две строки (назначения платежа), которые похожи между собой: строка 1 = 'За полученный товар по Договору N 555/12 от 29.04.11 Сумма 999999-00В т.ч. НДС(18%) 179999-82' строка 2 = 'За полученный товар по Договору N 444/13 от 30.05.12 Сумма 1111-55В т.ч. НДС(18%) 200-08' Как получить то, что в них одинаково? Для примера выше: результат = 'За полученный товар по Договору N от .0.1 Сумма -В т.ч. НДС(18%) ' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 12:24:08 |
|
||
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
savinoffКак получить то, что в них одинаково? Для примера выше: результат = 'За полученный товар по Договору N от .0.1 Сумма -В т.ч. НДС(18%) 'Одинакового в них больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 12:33:41 |
|
||
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
Количество одиннаковости можно посчитать с utl_match, а вот, какие варианты получить то, что именно одинаково? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 13:08:51 |
|
||
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
у вас постановка задачи хромает если именно общее, то выведет совсем не то, что вы показали, а вот, например, это: За полученный товар по Договору N 555/12 от 2.04.11 Сумма -00В т.ч. НДС(18%) 1-82 сам код для этого случая: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. или вот это: За полученный товар по Договору N 444/1 от 0.05.12 Сумма 1111-55В т.ч. НДС(18%) 200-08 код для второго случая (найдите 6 отличий): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. если вам нужно идти по одной строке и из второй сравнивать строго не дальше n символов от текущей позиции, то можете попробовать сами на основе приведённой рыбы с помощью lead/last, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 14:14:47 |
|
||
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
Спасибо болшое. Тут идёт попозиционное сравнение. Хочется найти функцию, которая могла бы выделить одинаковую часть. Или выдать разницу между строками (такой-то символ удалили, такой-то добавили). Нашёл в python difflib.ndiff + difflib.restore, он работает почти как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 16:23:52 |
|
||
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
savinoffХочется найти функцию, которая могла бы выделить одинаковую часть regexp_substr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 20:40:35 |
|
||
|
Сравнить два строковых значения и получить одинаковую часть
|
|||
|---|---|---|---|
|
#18+
savinoff, В общем случае это может быть задача поиска https://ru.wikipedia.org/wiki/Наибольшая_общая_подстрока Но очень часто и простого diff бывает достаточно Либо, если речь идет о сжатии данных - словаря ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 01:11:26 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39285736&tid=1887733]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 472ms |

| 0 / 0 |
