поиск в регулярном выражении POSIX для соответствия всем пробелам, кроме последнего (для gsub) - PullRequest
0 голосов
/ 13 января 2020

... волнуется из-за этой простой проблемы:

Я использую Ingest pipe с процессором gsub, чтобы заменить все (белые) пробелы, кроме последнего . Например:

"hello world regex is fubar ", чтобы получить "hello, world, regex, is, fubar"

Как я могу преобразовать синтаксис PCRE (который не будет работать с шаблонами TRE gsub, как я выяснил, )

"/\s(?=.\S*)/g"

К POSIX , например ...

"/[[:space:]](?=.[[:space:]]*)/g"

(только обмен пробелами, а не поиск)

Редактировать: как Я могу предоставить только регулярное выражение в строке, я не могу использовать другой процессор, чем gsub. '\ s' или '\ S' явно помечены как "неизвестные".

1 Ответ

0 голосов
/ 13 января 2020

Работает с использованием " +([^ ])" - другое решение будет " +(.)". (Оба без двойных кавычек)

со строкой замены / замены ,$1.

Спасибо Wiktor Stribiżew за указание на это.

По какой-то причине литерал POSIX [:space] не работает, почему [[:space:]]+(.) тоже не работает, даже если это правильное регулярное выражение .

...