Regex для изменения на случай предложения

Python-подобное решение, которое позволяет использовать отрицательный индекс,

var str = "Hello world!"
str[-1]        // "!"

может быть:

extension String {
    subscript (var index:Int)->Character{
        get {
            let n = distance(self.startIndex, self.endIndex)
            index %= n
            if index < 0 { index += n }
            return self[advance(startIndex, index)]
        }
    }
}

Кстати, может быть, стоит перенести целая нотация среза питона

40
задан jkramp 24 June 2009 в 15:49
поделиться

1 ответ

Замена регулярного выражения не может выполнять функцию (например, использование заглавных букв) для совпадений. Вам придется написать сценарий, например, на PHP или JavaScript.

Обновление: См. ответ Йонаса .

Я создал себе веб-страницу под названием Текстовые утилиты , чтобы делать такие вещи:

  • вставьте свой текст
  • введите «Найти, регулярное выражение и заменить» (или нажмите Ctrl + Shift + F )
  • введите свое регулярное выражение (у меня будет ^ (. *? \ = \ S * \ w) (. *) $ )
  • отметьте опцию «^ $ match line limits»
  • выберите «Apply JS function to match»
  • добавить аргументы (сначала совпадение, затем подшаблоны), здесь s, start, rest
  • измените оператор возврата на return start + rest.toLowerCase ();
13
ответ дан 27 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: