Regex заменяет все пробелы после группы в строке

Хорошо … этот вопрос звучит странно, но я имею в виду следующее:

У меня есть конкретная группа для поиска, и я хочу, чтобы все пробелы ПОСЛЕ этой группы, но только в текущей строке, были удалены. Мой конкретный пример таков:

@subpackage Some Word Stuff

@subpackage не принимает пробелы, но я не знал об этом в то время, и мне нужно исправить многие из этих строк. Я хотел бы найти и заменить на регулярное выражение (моя среда IDE поддерживает это), чтобы убрать пробелы между словами после КАЖДОГО экземпляра @subpackage,

РЕДАКТИРОВАТЬ: Ясность на примере возможно

"@subpackage Some Word Stuff" -> "@subpackage SomeWordStuff"

3

Решение

Найти с помощью регулярного выражения ниже, заменить на пустую строку '' ,
(Просто используйте replace_all)

 # '~(?mi-)(?:(?!\A)\G|^@subpackage)[^ \r\n]*\K[ ]+~'

(?xmi-)                     # Inline 'Expanded, multiline, case insensitive' modifiers
(?:
(?! \A )                    # Matched before, start from here
\G
|                            # or,
^ @subpackage               # '@Subpackage' at bol (remove '^' if not at bol)
)
[^ \r\n]*                   # Not space or line breaks
\K                          # Don't include anything from here back in match
[ ]+                        # 1 or more spaces

Вот один для всех без пробелов.

 # '~(?mi-)(?:(?!\A)\G|^@subpackage)\S*\K[^\S\r\n]+~'

(?xmi-)                     # Inline 'Expanded, multiline, case insensitive' modifiers
(?:
(?! \A )                    # Matched before, start from here
\G
|                            # or,
^ @subpackage               # '@Subpackage' at bol (remove '^' if not at bol)
)
\S*                         # 0 or more, Not whitespace
\K                          # Don't include anything from here back in match
[^\S\r\n]+                  # 1 or more non-linebreak whitespaces
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]