Чтобы упростить задачу, я назвал группы, но должно работать следующее:
(?<x>-?\d+\.\d+)\s+(?<y>-?\d+\.\d+)
Обратите внимание, что для этого требуется, чтобы в 3-м и 4-м столбце были десятичные числа (я не делаюлюбая проверка для принятия целых или десятичных чисел, но при необходимости это может быть добавлено).
Обратите внимание, что выше было проверено на работу.
Резюме
В основном мы используем полученную вами запись, но расширяем ее, используя группы захвата (круглые скобки).Я также использую именованные группы (?<x>
и ?<y>
в начале группы), чтобы вы могли ссылаться на найденные значения, используя xyRegex.Groups["x"]
и xyRegex.Groups["y"]
соответственно.
Я также нашел ваш захватне удалось, когда числа появились с отрицательными значениями, поэтому я добавил необязательный отрицательный символ (-?
) к шаблону, чтобы учесть это.
Итак, с разбивкой, вот утверждение:
(?<x> # Begin capture group "x"
-? # allow a negative symbol 0 or 1 time
\d+ # allow 1+ numbers
\. # allow a single decimal
\d+ # allow decimal numbers 1+ times
) # end capture group "x"
\s+ # allow white space between the number sets
(?<y> # Begin capture group "y"
-? # \
\d+ # | - same as above
\. # |
\d+ # /
) # End capture group "y"