Функция 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
#crDroid#diting
New Version 10/09/2024:
Gapped version
Download
Changelog:
Updated to version 10.8
Note:
Firmware is NOT included.
Credits:
Thanks to @TeamMEX_XDA for all his helps and providing dt
By@Mohammadnt96
#crDroid#diting
New Version 11/07/2024:
Gapped version
Download
Changelog:
crDroid v10.6
Updated to June security patch
Including MiuiCamera
Note:
Firmware is NOT included.
This is beta version.
Credits:
Thanks to @TeamMEX_XDA for all his helps and providing dt
By@Mohammadnt96
Follow@xiaomi_12tpro_updates
Join@xiaomi_12tpro_chat
#crDroid#diting
New Version 25/02/2024:
Gapped version
Download
Changelog:
crDroid v10.2
SMS fixed
Kernel Switched to HyperOS
Used HyperOS blobs
Notes:
Use latest skkk twrp (v8.6)
Credits:
Thanks to @TeamMEX_XDA for all his helps and providing dt
Discussion:
Xiaomi 12T Pro crDroid
#crDroid#diting
New Version 02/02/2024:
Gapped version
Download
Changelog:
crDroid v10.1
fod fixed for both touchscreens
miui camera included
Known Issues:
Opening photo in miui camera
Credits:
Thanks to @TeamMEX_XDA for all his helps and providing dt
Discussion:
Xiaomi 12T Pro crDroid
#crDroid#Unofficial#diting#A14
Crdroid 10.0 UNOFFICIAL | Android 14
Updated: 11-11-2023
▪️Download
▪️Support
Changelog:
• Initial A14 build with oss vendor
Notes:
Known Issues:
Auto brightness must be disabled. otherwise screen will not wake after lock
Fod on k50u does not work
Credits: Thanks to @TeamMEX_XDA for providing dt
By@Mohammadnt96
Follow@xiaomi_12tpro_updates
Join@xiaomi_12tpro_chat
CrDroid - Official | Android 14 | Nothing Phone (2)
📝 Details:
- Version: v10.6
- Status: #Official
- Device: #Pong
- Released: 30/07/24
⬇️ Download: ROM (Vanilla) | Gapps Package
📔 Instructions: Here
🎄 Device tree : Here
📝 Changelogs : Here
🆘 Support: TG | XDA
🏷 Tags: #AOSP#ROM#CrDroid#U
✍️ Note:
- Base firmware 2.6.0 is recommended
- Dirty flash possible from previous july build
- Report with logs if you found issues in the comment section below
🏆 Credits:
- Chandu Dyavanapelli for DT Base
- Hellboy for Meteoric kernel and Glyph changes
- Fabian for PA Glyph Implementation
👤 Maintainer: @Ghosutox
🔔 Updates: @NothingPhone2Updates
🐙 Chat: @NothingPhone2
CrDroid - Official | Android 14 | Nothing Phone (2)
📝 Details:
- Version: v10.2
- Status: #Official
- Device: #Pong
- Released: 08/02/24
⬇️ Download: ROM (Vanilla) | Gapps
📔 Instructions: Here
💬 Support Group: Here
🏛 XDA: Here
💰 Donate: PayPal | BuyMeACoffee
🏷 Tags: #AOSP#ROM#CrDroid#U
✨Changelogs:
- Initial official build
- Firmware removed
- Rebased on NOS 2.5.2
- Added Reverse Wireless Charging
- Switched to qcom telephony
- Added Glyphify (An alternative app to ParanoidGlyph I made, more to come in future updates)
⛔️ Known Issues:
- Issue with reception of SMS
Enabling and disabling SIM card from settings fix the issue until the next boot
✍️ Note:
- Base firmware 2.5.2 is recommended
- Report with logs if you found issues in the comment section below
🏆 Credits:
- Chandu_Dyavanapelli for DT bring up
- Hellboy017 for kernel
- Przekichane for DT & vendor fixes on A13 » A14
- Pong TG Dev & Testing Team
👤 Dev: @DylanAkp
🔔 Updates: @NothingPhone2Updates
🐙 Chat: @NothingPhone2
CrDroid - Unofficial | Android 14 | Nothing Phone (2)
📝 Details:
- Version : v10.x
- Status: #Unofficial
- Device : #Pong
- Released : 04/01/24
⬇️ Download : ROM (Vanilla) | Gapps
📔 Instructions: Here
📸 Screenshots : Here
💬 Support Group : Here
🏛 XDA : Here
💰 Donate : PayPal | BuyMeACoffee
🏷Tags : #AOSP#ROM#CrDroid#U
✨Changelogs:
- Rebased on NothingOS 2.5.1
- Fixed stutters
- Fixed Face Unlock
- More CrDroid settings implemented
- Updated to Android QPR1 (Security patch December 2023)
✍️ Note:
- Base firmware 2.5.1 is recommended
- Report with logs if you found issues in the comment section below
🏆 Credits:
- Chandu_Dyavanapelli for DT Bringup
- Hellboy017 for kernel
- Przekichane for DT and Vendor fixes on A13 » A14
- Pong TG Dev and Testing Team for all help
👤 Dev : @DylanAkp
🔔 Updates : @NothingPhone2Updates
🐙 Chat : @NothingPhone2
CrDroid - Unofficial | Android 14 | Nothing Phone (2)
📝 Details:
- Version : v10.x
- Status: #Unofficial
- Device : #Pong
- Released : 18/12/23
⬇️ Download : Rom (Vanilla) | Gapps
📔 Instructions: Here
📸 Screenshots : Here
🏛 XDA : Here
💰 Donate : PayPal
🏷Tags : #AOSP#ROM#CrDroid#U
✨Changelogs:
- Intitial A14 build based
✍️ Note:
- Please be on NOS 2.0.4 before flashing. (Not yet tested from 2.5.1)
- Report with logs if you found issues in the comment section below
🏆 Credits:
- Chandu_Dyavanapelli for DT Bringup
- Hellboy017 for kernel
- Przekichane for DT and Vendor fixes on A13 » A14
- Snuvig for early tests
- Pong TG Dev and Testing Team for all help
👤 Dev : @DylanAkp
🔔 Updates : @NothingPhone2Updates
🐙 Chat : @NothingPhone2