Это регулярное выражение будет делать то, что вы хотите:
(\s+Tags:\s+|(?<!^|$)\G)\s*,?\s*(\w+)
Первая часть (\s+Tags:\s+|(?<!^|$)\G)
ищет либо слово Tags:
, либо начало предыдущего совпадения (\G
), где это невозможнонаходиться в начале или в конце строки ((?<!^|$)
).Вторая часть ищет слово, которому предшествует необязательная запятая и пробел.
Regex101 Demo
В блокноте откройте диалоговое окно Replace, выберите Wrap around
и Regular expression
, и сделайте замену строкой #\2
(это пробел, после которого следует #
, затем \2
).
Выберите Replace All
.
Примервведите:
word1 word2 word3 Tags: communication, inspirational, love, relationships
word4 word5 word6 Tags: single, mother, blue, sunny
После замены:
word1 word2 word3 #communication #inspirational #love #relationships
word4 word5 word6 #single #mother #blue #sunny
Обновление
Если вы хотите разрешить использование специальных символов в словах (например, -
) измените \w
в регулярном выражении, например, [\w-]
.Чтобы разрешить любые символы в словах, измените \w
в регулярном выражении на \S
.
Обновление 2
Поскольку могут быть строки, которые не имеютпробел перед Tags:
, необходимо изменить \s+
до Tags:
на \b
.т.е.
(\bTags:\s+|(?<!^|$)\G)\s*,?\s*(\S+)
Обновленная демоверсия Regex101