/ / Редов израз за съвпадение на SQL пространствени данни - sql, regex, spatial

Редов израз за съвпадение на SQL пространствени данни - sql, regex, spatial

как да създадете регулярен израз за съвпадение на координатите на MySQL пространствени многоредови струни. за съвпадение:

(33 44, 98 33)
(10 10, 20 20), (15 15, 30 15)
(10 10, 20 20), (15 15, 30 15), (10 10, 11 11, 22 22)

Отговори:

2 за отговор № 1

За да съответства на всеки един координати:

(((?:d+sd+,s)*d+sd+))

Визуализиране на регулярен израз

/(
(         # opening parenthesis  "("
(?:      # non-capturing group  "("
d+    # one or more number   "(33"
s     # a space              "(33 "
d+    # one or more number   "(33 44"
,s    # a comma and a space  "(33 44, "
)*       # repeat n time        "(33 44, "
d+sd+ # plus a last one      "(33 44, 98 33"
)         # closing parenthesis  "(33 44, 98 33)"
)/x

За да съответствате на всяка група координати (= всеки ред):

((?:((?:d+sd+,s)*d+sd+),s)*((?:d+sd+,s)*d+sd+))

Визуализиране на регулярен израз

/(
(?:                            # non-capturing group ""
((?:d+sd+,s)*d+sd+) # cf first regex      "(10 10, 20 20)"
,s                          # comma and space     "(10 10, 20 20), "
)*                             # repeat n time       "(10 10, 20 20), (15 15, 30 15), "
((?:d+sd+,s)*d+sd+)   # plus a last one     "(10 10, 20 20), (15 15, 30 15), (10 10, 11 11, 22 22)"
)/x