У меня есть эта строка, которая будет иметь структуру, как это:Matching группы по запятой
somevalue, secondvalue, thirdvalue
Там всегда будет три значения, и они будут через запятую. Фактические значения, которые они сами могут содержать ,
.
Некоторые примеры данных, которые я используя эту структуру:
app.weeks = 999, 999, app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7)
Где app.weeks = 999
одно целое значение, за которым следует ,
и 999
одно целое значение, за которым следует ,
и
app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7)
- еще одно значение.
Использование этой строки в качестве примера и со структурой выше.
Имея в виду, что значения не являются фиксированными, не всегда будет conatin слово "app.weeks = 999}
Я хочу разделить это на три секции.
matches (
$1: app.weeks = 999
$2: 999
$3: app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7)
)
может прийти в любом порядке:
999, app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7), app.weeks = 999
app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7), app.weeks = 999, 999
или комбинацию:
app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7), app.weeks = 999, app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7)
В таких случаях все еще нужно, чтобы соответствовать, как это:
matches (
$1: app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7)
$2: app.weeks = 999
$3: app.weeks - FLOOR(DATEDIFF(DAY, GETDATE(), app.register)/7)
)
Вышеуказанные требования приложения.
Это моя попытка:
^(.+,)(.+,)(.+)$
Но это ничего не найдено. Каким должно быть мое регулярное выражение?
На стороне примечание, в этом требовании я пытаюсь преобразовать операторы IF MYSQL в операторы TSQL Case на лету.
Обновленный ответ, сделал это работает сейчас? – Skogsv