import re
regex = re.compile(r"(?:\<intent\-filter\>)(\n|\s|\w|\W|\b|\B|.)*?(?:\<\/intent\-filter\>)")
test_str = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<manifest\n"
" xmlns:android=\"http://schemas.android.com/apk/res/android\"\n"
" android:versionCode=\"27\"\n"
" android:versionName=\"3.3.1\"\n"
" compileSdkVersion=\"28\"\n"
" compileSdkVersionCodename=\"9\"\n"
" package=\"xyz.omnicron.caffeinate\"\n"
" platformBuildVersionCode=\"27\"\n"
" platformBuildVersionName=\"3.3.1\">\n"
" <uses-sdk\n"
" android:minSdkVersion=\"24\"\n"
" android:targetSdkVersion=\"28\"/>\n"
" <uses-permission\n"
" android:name=\"android.permission.WAKE_LOCK\"/>\n"
" <uses-permission\n"
" android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>\n"
" <uses-permission\n"
" android:name=\"android.permission.ACCESS_NOTIFICATION_POLICY\"/>\n"
" <uses-permission\n"
" android:name=\"android.permission.FOREGROUND_SERVICE\"/>\n"
" <uses-permission\n"
" android:name=\"android.permission.INTERNET\"/>\n"
" <uses-permission\n"
" android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>\n"
" <uses-permission\n"
" android:name=\"com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE\"/>\n"
" <uses-permission\n"
" android:name=\"com.google.android.c2dm.permission.RECEIVE\"/>\n"
" <permission\n"
" android:name=\"xyz.omnicron.caffeinate.permission.C2D_MESSAGE\"\n"
" android:protectionLevel=\"signature\"/>\n"
" <uses-permission\n"
" android:name=\"xyz.omnicron.caffeinate.permission.C2D_MESSAGE\"/>\n"
" <application\n"
" android:theme=\"@2131755014\"\n"
" android:label=\"@2131689511\"\n"
" android:icon=\"@2131623936\"\n"
" android:name=\"xyz.omnicron.caffeinate.Caffeine\"\n"
" allowBackup=\"true\"\n"
" supportsRtl=\"true\"\n"
" appComponentFactory=\"android.support.v4.app.CoreComponentFactory\">\n"
" <activity\n"
" android:name=\"xyz.omnicron.caffeinate.MainActivity\">\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"android.intent.action.MAIN\"/>\n"
" <category\n"
" android:name=\"android.intent.category.LAUNCHER\"/>\n"
" </intent-filter>\n"
" </activity>\n"
" <receiver\n"
" android:name=\"xyz.omnicron.caffeinate.ActionReceiver\"\n"
" android:exported=\"true\">\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"xyz.omnicron.caffeinate.STOP_ACTION\"/>\n"
" </intent-filter>\n"
" </receiver>\n"
" <service\n"
" android:label=\"@2131689514\"\n"
" android:icon=\"@2131230861\"\n"
" android:name=\"xyz.omnicron.caffeinate.services.CaffeinateTileService\"\n"
" android:permission=\"android.permission.BIND_QUICK_SETTINGS_TILE\">\n"
" <meta-data\n"
" android:name=\"android.service.quicksettings.ACTIVE_TILE\"\n"
" android:value=\"false\"/>\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"android.service.quicksettings.action.QS_TILE\"/>\n"
" </intent-filter>\n"
" </service>\n"
" <service\n"
" android:label=\"@2131689583\"\n"
" android:icon=\"@2131230858\"\n"
" android:name=\"xyz.omnicron.caffeinate.services.SoundProfileTileService\"\n"
" android:permission=\"android.permission.BIND_QUICK_SETTINGS_TILE\">\n"
" <meta-data\n"
" android:name=\"android.service.quicksettings.ACTIVE_TILE\"\n"
" android:value=\"true\"/>\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"android.service.quicksettings.action.QS_TILE\"/>\n"
" </intent-filter>\n"
" </service>\n"
" <service\n"
" android:name=\"xyz.omnicron.caffeinate.services.CaffeinationService\"\n"
" android:exported=\"false\"/>\n"
" <activity\n"
" android:label=\"@2131689585\"\n"
" android:name=\"xyz.omnicron.caffeinate.SettingsActivity\"/>\n"
" <activity\n"
" android:label=\"A/B Testing Debug Screen\"\n"
" android:name=\"xyz.omnicron.caffeinate.ABTestingDebugActivity\">\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"xyz.omnicron.caffeinate.ABTestingDebugActivity\"/>\n"
" <category\n"
" android:name=\"android.intent.category.DEFAULT\"/>\n"
" </intent-filter>\n"
" </activity>\n"
" <activity\n"
" android:theme=\"@2131755016\"\n"
" android:label=\"@2131689584\"\n"
" android:name=\"xyz.omnicron.caffeinate.CreditsActivity\"/>\n"
" <service\n"
" android:name=\"com.google.firebase.components.ComponentDiscoveryService\">\n"
" <meta-data\n"
" android:name=\"com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar\"\n"
" android:value=\"com.google.firebase.components.ComponentRegistrar\"/>\n"
" <meta-data\n"
" android:name=\"com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar\"\n"
" android:value=\"com.google.firebase.components.ComponentRegistrar\"/>\n"
" <meta-data\n"
" android:name=\"com.google.firebase.components:com.google.firebase.iid.Registrar\"\n"
" android:value=\"com.google.firebase.components.ComponentRegistrar\"/>\n"
" </service>\n"
" <receiver\n"
" android:name=\"com.google.android.gms.measurement.AppMeasurementReceiver\"\n"
" android:enabled=\"true\"\n"
" android:exported=\"false\"/>\n"
" <receiver\n"
" android:name=\"com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver\"\n"
" android:permission=\"android.permission.INSTALL_PACKAGES\"\n"
" android:enabled=\"true\"\n"
" android:exported=\"true\">\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"com.android.vending.INSTALL_REFERRER\"/>\n"
" </intent-filter>\n"
" </receiver>\n"
" <service\n"
" android:name=\"com.google.android.gms.measurement.AppMeasurementService\"\n"
" android:enabled=\"true\"\n"
" android:exported=\"false\"/>\n"
" <service\n"
" android:name=\"com.google.android.gms.measurement.AppMeasurementJobService\"\n"
" android:permission=\"android.permission.BIND_JOB_SERVICE\"\n"
" android:enabled=\"true\"\n"
" android:exported=\"false\"/>\n"
" <receiver\n"
" android:name=\"com.google.firebase.iid.FirebaseInstanceIdReceiver\"\n"
" android:permission=\"com.google.android.c2dm.permission.SEND\"\n"
" android:exported=\"true\">\n"
" <intent-filter>\n"
" <action\n"
" android:name=\"com.google.android.c2dm.intent.RECEIVE\"/>\n"
" <category\n"
" android:name=\"xyz.omnicron.caffeinate\"/>\n"
" </intent-filter>\n"
" </receiver>\n"
" <service\n"
" android:name=\"com.google.firebase.iid.FirebaseInstanceIdService\"\n"
" android:exported=\"true\">\n"
" <intent-filter\n"
" android:priority=\"-500\">\n"
" <action\n"
" android:name=\"com.google.firebase.INSTANCE_ID_EVENT\"/>\n"
" </intent-filter>\n"
" </service>\n"
" <activity\n"
" android:theme=\"@16973840\"\n"
" android:name=\"com.google.android.gms.common.api.GoogleApiActivity\"\n"
" android:exported=\"false\"/>\n"
" <provider\n"
" android:name=\"com.google.firebase.provider.FirebaseInitProvider\"\n"
" android:exported=\"false\"\n"
" android:authorities=\"xyz.omnicron.caffeinate.firebaseinitprovider\"\n"
" android:initOrder=\"100\"/>\n"
" <meta-data\n"
" android:name=\"com.google.android.gms.version\"\n"
" android:value=\"@2131361800\"/>\n"
" </application>\n"
"</manifest>\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html