Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
PeerTube Mobile App v1 Is Out | Linuxiac
The PeerTube mobile app has reached version 1, allowing users to easily edit playlists, comment on videos, and switch between accounts
Sortie de la v1 de l'application mobile ! | JoinPeerTube
PeerTube | F-Droid - Free and Open Source Android App Repository
Go to the git page to get version 1.0 the F-Droid link is 0.6
https://framagit.org/framasoft/peertube/mobile-application/-/releases
Via @linuxgram
#PeerTube
P2Play - Peertube client (Unofficial client for Peertube)
P2Play is an Android application for Peertube. The features are as follows:
- Show list of recent, popular and local videos.
- Play videos (very simple)
- Log in and register in your instance
- Refresh
View downloaded videos
- Subscribe to accounts
- View videos from your subscriptions
- Rate videos
https://f-droid.org/packages/org.libre.agosto.p2play/
https://instances.joinpeertube.org/instances
#PeerTube
PeerTube v7.2.0
=> https://joinpeertube.org/
PeerTube is a free, decentralized and federated video platform developed as an alternative to other platforms that centralize our data and attention, such as YouTube, Dailymotion or Vimeo. 🎬
Changelog:
=> https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.0
Via @dcntr
#PeerTube#ActivityPub
PeerTube 7.1 brings Podcast 2.0 support, enhanced identification and Mastodon verification | AlternativeTo
PeerTubePeerTube has launched version 7.1 of its open-source, decentralized video-sharing platform, introducing a range of new features and improvements. A key update is enhanced platform identification, which now highlights the hosting platform's address for each video. Users can click on this address to learn more about the video's origin and explore all videos hosted on the remote instance.
Version 7.1 also advances its support for #Podcast 2.0, enabling users to subscribe to channels and play video audio streams through traditional podcast applications like #AntennaPod and #Podverse. Additionally, the podcast feed is now compatible with Apple Podcast, broadening accessibility
PeerTube v7.1 is out! | JoinPeerTube
https://joinpeertube.org/news/release-7.1
#PeerTube
#java#4k#android#bandcamp#download_videos#newpipe#peertube#soundcloud#translation#video#watch#youtube_video
NewPipe is a free, open-source Android app for ad-free streaming and downloading videos/audio from YouTube, SoundCloud, PeerTube and more, with background play, pop-up mode, subscriptions without accounts, and no Google tracking for full privacy. The team is rewriting the code for a modern, stable version—download nightly builds to try new features early. This benefits you by saving data/battery, enabling offline/multitasking use, and protecting your data on any device.
https://github.com/TeamNewPipe/NewPipe