Чтобы уточнить ответ @KennyHo, я узнал, что существует другая разница между реальной и имитируемой обратной связью местоположений.
Симуляционное местоположение, как я заметил, всегда возвращает эту комбинацию значений для этих свойств / опций местоположения:
horizontalAccuracy: 5
verticalAccuracy: -1
altitude: 0.000000
speed: -1
, в то время как реальное местоположение будет давать разные комминирования 99% время, например
horizontalAccuracy: 5
verticalAccuracy: 10
altitude: +/- 0.4243232
speed: -1
Обратите внимание, что для моделируемого местоположения возможно иметь другую комбинацию, чем приведенная выше, но только если пользователь использует xcode целевой тест автоматизации . Однако пользователь может смоделировать местоположение только для подписанного приложения с идентификатором разработки (должен принадлежать приложение). Это означает, что никто, кроме вас, не может подделать местоположение с разными altitude
или verticalAccuracy
, чтобы обмануть ваше приложение в xcode.
искать с (\S*?)(.)\2{2,}(\S*)
и заменить на \1\2\3 (\2long)
So:
text = re.sub(r"(\S*?)(.)\2{2,}(\S*)", r"\1\2\3 (\2long)", the_input_string)
Вход:
"whatheever", «cooool» и «haaaapy», сохраните только
Станет:
«что угодно», (elong) «col», (olong) и «hapy», (вдоль) сохранить только
Если вы измените шаблон поиска на
(\S*?)(.)\2{2,}(\w*)
, тогда выход может быть"whatever(elong)",
, а не"whatever", (elong)
Вы можете протестировать здесь: https://www.regexplanet.com/share/index.html?share=yyyyyrbm63d
самый простой состоит в объединении регулярного выражения со строковыми конкатенациями:
for w in ('whateeever', 'cooool','haaaapy'):
print re.sub(r'([a-zA-Z])\1+', r'\1', w)+' (elong)'
re.sub(r"(\S*?)(.)\2{2,}(\S*)", r"\1\2\3 (\2long)", the_string)
? Ваш код не компилируется, как ... – dawg 13 July 2018 в 18:33.
вre.sub
против подчеркивания. – dawg 13 July 2018 в 18:40