Если объединенный CSV будет использоваться в Python, то просто используйте glob
, чтобы получить список файлов, которые будут переданы в fileinput.input()
с помощью кнопки files
, затем используйте модуль csv
, чтобы прочитать все за один раз.
Ваши обходные пути стоят рядом с дополнительными узорами, -?
. Таким образом, всякий раз, когда обходные пути терпят неудачу, происходит откат назад, и встречаются нежелательные совпадения.
Чтобы избежать этого, учтите необязательный паттерн внутри паттернов внешнего вида.
/-?(?<![\d.,]-|[\d.,])\d{1,3}(?:(?:[. ]\d{3})*|\d*)(?:\b|[^.,%]|,\d{1,2})(?!-?(?:[\d.,%]| %))-?/
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
См. regex demo
.