Regular expression needed for this pattern: point(latitude,longitude)

c#, regex

Solution

You can easily build your regex with a little bit of break-up here.

- To match `point(` at the beginning, use - `^point\(`

- To match a latitude or longitude numbers, use - `[-]?\d+(?:\.\d+)?`

- And again, to match `)` at the end, use `\)$`.

For `[-]?\d+(?:\.\d+)?`, here's an explanation: -

- `[-]?` - matches an optional `negative (-)` sign at the starting (`? quantifier` at the end means 0 or 1)

- `\d+` - matches one or more digits

- `(?:\.\d+)?` - matches an optional `decimal`, followed by `one or more digits`. dot(.) is a special meta-character in Regex, so you need to escape it, if you want to match it.

Also, to limit your number of digits to `5`, you can use - `\d{1,5}` instead of `\d+`, which matches minimum 1 and maximum 5 digits.

`^(caret)` and `$(dollar)` anchors matches the beginning and end of the string.

So, here's your regex: -

^point\([-]?\d+(?:\.\d{1,5})?,[-]?\d+(?:\.\d{1,5})?\)$

Problem

I am trying to validate text that follows the pattern below: - Must have the text "point(" at the beginning - Must follow it by a Latitude numerical value with up to 5 decimal places (example: 42.12345) - Must follow it by a comma "," - Must follow it by a Longitude numerical value with up to 5 decimal places (example: -81.12345) - Must follow it by a closing parentheses ")" Matching example: - point(42.12345,-81.12345) Any help is greatly appreciated. Thanks.

Original source