Я пытаюсь извлечь строку на основе ниже двух строк. Я должен быть в состоянии соответствовать одному из доступного текста. Входные строки:
//management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.DBforPostgreSQL/servers/serverName/databases/databaseName?api-version=2017-12-01
//management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.DBforPostgreSQL/servers/serverName?api-version=2017-12-01
В зависимости от того, какая строка доступна (сверху 2), я должен иметь возможность для извлечения либо Microsoft.DBforPostgreSQL/servers/serverName/databases
(из 1-й строки), либо Microsoft.DBforPostgreSQL/servers
(из 2-й строки).
Входные строки не в порядке ввода.
Редактировать : Входная строка также может иметь вид:
//management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/accountName/apis/sql/databases/databaseName?api-version=2015-04-08
в приведенном выше примере строки мне нужно извлечь "Microsoft.DocumentDB / databaseAccounts / accountName / apis / sql / database "
Я пробовал это: (Microsoft.[a-zA-Z]+\/[a-zA-Z]+)|(Microsoft.[a-zA-Z]+\/[a-zA-Z]+\/[a-zA-Z]+\/[a-zA-Z]+)
и это не сработало