#tcl #youtube-dl #regsub
Вопрос:
Я хочу зарегистрироваться без исключения, чтобы не удваивать, я делаю регистрацию.
пример перед:
regsub -all "feat" $songtitle "" songtitle
regsub -all "Feat" $songtitle "" songtitle
Я хочу простую одну строку для regsub:
regsub -all "feat" $songtitle "" songtitle
Это немного неудобно, если есть много слов, которые я хочу прописать, я хочу, чтобы это было просто, без исключений в описании, чтобы только одна строка каждого слова была прописной, а не две строки для прописных и строчных букв. Спасибо
Ответ №1:
Вы можете указать -nocase
опцию regsub
, чтобы заставить его игнорировать регистр при сопоставлении.
regsub -all -nocase {feat} $songtitle "" songtitle
Вы также можете включить этот режим работы, поставив (?i)
маркер в начале повторного:
regsub -all {(?i)feat} $songtitle "" songtitle
Вероятно, вам также следует добавить некоторые y
(ограничение на границы слов) в этот параметр, чтобы он не превратился defeated
в deed
:
regsub -all {(?i)yfeaty} $songtitle "" songtitle
(Как только вы добавляете в RE обратную косую черту или квадратные скобки, в Tcl очень важно, чтобы вы вставляли RE в фигурные скобки. В противном случае вы в конечном итоге используете отвратительно большое количество обратных косых черт…)
Ответ №2:
Также имейте в виду string map
команду:
string map {feat "" Feat ""} $songtitle
Полезно, когда вам на самом деле не нужны регулярные выражения.