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

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

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

@subpackage Some Word Stuff

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

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

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

1 ответ

Найти с помощью регулярного выражения ниже, заменить на пустую строку '',
(Просто используйте 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
Другие вопросы по тегам