Допустим, у меня есть следующий текст:
#Foo foo bar bar
foo bar foo
#bar Foo Foo
foo bar
Допустим, я хочу заменить пробелы символами -
в строках, начинающихся с символа #
. Итак, вывод должен быть:
#Foo-foo-bar-bar
foo bar foo
#bar-Foo-Foo
foo bar
Я знаю, что могу найти эти строки, используя это регулярное выражение:
/^#(.*)$/gm
Но могу ли я каким-либо образом изменить эти последовательности $1
?
P.S. Я использую регулярное выражение внутри блокнота++ для преобразования некоторых данных из Excel в код (на самом деле это очень удобно).
PS2 Мне также пришлось заменить некоторые символы табуляции в тексте, и, немного поработав с ответом Авинаша Раджа, я обнаружил, что могу сделать это, используя это регулярное выражение... За исключением того, что это не сработало, как предполагалось, но Авинаш Радж был достаточно любезен, чтобы помочь еще раз с этим регулярным выражением.
/(?:^#|(?<!^)\G)[\S ]*\K\t/gm
\S
? Это просто приводит к тому, что шаблон не работает с#foo\t bar
. А почему `+`? Это преобразует несколько последовательных пробелов в одно тире. 30.09.2014\h
вместо[ \t]
30.09.2014\s
также будет соответствовать символу новой строки. Поэтому я добавил пробел и\t
внутри класса символов. 30.09.2014[^\t]*
, это также будет соответствовать предыдущим строкам. 30.09.2014