@DAC
Короче говоря: SID = уникальное имя Вашего DB, ServiceName = псевдоним, используемый при соединении
Не строго верный.. SID = уникальное имя ЭКЗЕМПЛЯРА (например, процесс оракула, работающий на машине). Oracle полагает, что "База данных" файлы.
Сервисное Название = искажают к ЭКЗЕМПЛЯРУ (или многим экземплярам). Основная цель этого состоит в том при выполнении кластера клиент может сказать, "подключают меня к SALES.acme.com", DBA может на лету изменить количество экземпляров, которые доступны запросам SALES.acme.com, или даже перемещают SALES.acme.com в совершенно другую базу данных без клиента, бывшего должного изменить любые настройки.
Я предлагаю вам сделать следующее:
(\d+)(,\s*\d+)*
который будет работать для списка, содержащего 1 или более элементов.
Это немного зависит от ваших конкретных требований. Я предполагаю: все числа любой длины, числа не могут иметь начальных нулей, не содержать запятых или десятичных знаков. отдельные числа всегда разделяются запятой, затем пробелом, и последнее число НЕ имеет запятой и пробела после него. Любая из этих ошибок упростила бы решение.
([1-9][0-9]*,[ ])*[1-9][0-9]*
Вот как я построил это мысленно:
[0-9] any digit.
[1-9][0-9]* leading non-zero digit followed by any number of digits
[1-9][0-9]*, as above, followed by a comma
[1-9][0-9]*[ ] as above, followed by a space
([1-9][0-9]*[ ])* as above, repeated 0 or more times
([1-9][0-9]*[ ])*[1-9][0-9]* as above, with a final number that doesn't have a comma.
Сопоставление повторяющихся элементов, разделенных запятыми:
(?<=,|^)([^,]*)(,\1)+(?=,|$)
Ссылка .
Это регулярное выражение может использоваться для разделения значений списка, разделенного запятыми. Элементы списка могут быть кавычками, без кавычек или пустыми. Запятые в кавычках не совпадают.
,(?!(?<=(?:^|,)\s*"(?:[^"]|""|\\")*,)(?:[^"]|""|\\")*"\s*(?:,|$))
Ссылка .
Вы можете указать язык на всякий случай, но
(\d+, ?)+(\d+)?
должен работать