위도/경도 좌표를 일치시키는 정규식은 무엇입니까?

위도/경도 좌표를 일치시키기 위한 정규식을 만들려고 합니다. 배정밀도 숫자를 일치시키기 위해 (\-?\d+(\.\d+)?)를 사용하고 이를 단일 표현식으로 결합하려고 시도했습니다:

^(\-?\d+(\.\d+)?),\w*(\-?\d+(\.\d+)?)$

이중, 쉼표, 공백 및 다른 이중과 일치할 것으로 예상했지만 작동하지 않는 것 같습니다. 특히 공백이 하나 이상이 아닌 공백이 없는 경우에만 작동합니다. 제가 뭘 잘못했나요?

이 범위 내에서 엄격하게 일치시킵니다 해당하는 정확한 위도와 경도 값을 한 것이다.

^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$

일치시킵니다

-, - 127.554334 +90.0

  • 45, 180
      • 180 90, 180.0000 90.000, - - -
  • +90 +180,
  • 47.1231231 179.99999999,

39 일치시킵니다 doesn&, t

90., - - - 180. -, - 100.111 +90.1 91, 123.456 - -

  • 045, 180
해설 (6)
해결책

공백은 \w가 아닌 \s입니다.

^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$

작동하는지 확인

해설 (3)

이러한 수준들과 (소수점 형식, 소수점 숫자 6 개) 을 사용하고 있습니다.

Latitudetm

^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$

[! [Latitudetm 정규식이 시각화] [1]] [1]

경도

^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$

[! [경도 정규식이 시각화] [2]] [2]

  • [Here] [3] 은, 이 또한 모두 보고됨 테스트하는 사진을 쉽게 접근할 수 있습니다. # 39 의 it& Java 테스트래 테스트. 롬복 섬, 그리고 필요한 Slf4j 햄크레스트 하기 때문이다.

import static org.hamcrest.Matchers.*;
import static org.hamcrest.MatcherAssert.*;

import java.math.RoundingMode;
import java.text.DecimalFormat;

import lombok.extern.slf4j.Slf4j;

import org.testng.annotations.Test;

@Slf4j
public class LatLongValidationTest {

    protected static final String LATITUDE_PATTERN="^(\\+|-)?(?:90(?:(?:\\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\\.[0-9]{1,6})?))$";
    protected static final String LONGITUDE_PATTERN="^(\\+|-)?(?:180(?:(?:\\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\\.[0-9]{1,6})?))$";

    @Test
    public void latitudeTest(){
        DecimalFormat df = new DecimalFormat("#.######");
        df.setRoundingMode(RoundingMode.UP);
        double step = 0.01;
        Double latitudeToTest = -90.0;

        while(latitudeToTest = -200.0){
            boolean result = df.format(latitudeToTest).matches(LATITUDE_PATTERN);
            log.info("Latitude: tested {}. Result (matches regex): {}", df.format(latitudeToTest), result);
            assertThat(result, is(false));
            latitudeToTest -= step;
        }

        latitudeToTest = 90.01;

        while(latitudeToTest 
해설 (10)

악셀, regex 는 실제로 앨릭스 그들위에 잘못 latitudetm, 경도 범위의 관점.

176 90& latitudetm 측정선을 범위는 -; # 를 +90& 176.

경도 측정 범위는 180& # 176. # 를 +180& 176.

따라서 아래와 같이 주어져 보다 정확하게 검증하는 regex. 또한 아무도 내 돌아보 소수점 시점으로든지 latitudetm / 경도를 따라 제한해야 합니다.

^([-+]?\d{1,2}([.]\d+)?),\s*([-+]?\d{1,3}([.]\d+)?)$

C 충족하거나 목표

^([-+]?\\d{1,2}([.]\\d+)?),\\s*([-+]?\\d{1,3}([.]\\d+)?)$
해설 (1)
^-?[0-9]{1,3}(?:\.[0-9]{1,10})?$

Regex 구조:

^-?[0-9]{1,3}(?:\.[0-9]{1,10})?$

'-' # 동의하십시오 음수 값을?

구체화하십시오 시작 '^'

' [0-9] {1.3}' # 해당되어서는 1-3 숫자 (i. e. 0 999)

' (:' # 종료기 일치시키려면.

소수점 '#'.

' [0-9]} {1.10 10 자리) 에 이어' # 1 (i. e. 0-9999999999)

자오티오널리 ')?'

$ '끝' 문자열

해설 (1)

이거 드세요.

^(\()([-+]?)([\d]{1,2})(((\.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((\.)(\d+))?(\)))$

체크아웃합니다 http://support.

http://regexpal.com/

이와 같은 것을 맨 위 상자에 붙여넣습니다 표현식에서는 어졌다면 동일팔레트에 상자:

(80.0123, -34.034)
(80.0123)
(80.a)
(980.13, 40)
(99.000, 122.000)

Regex 구조:

^                    # The string must start this way (there can't be anything before). 
    (\()             # An opening parentheses (escaped with a backslash).
    ([-+]?)          # An optional minus, or an optional plus.
    ([\d]{1,2})      # 1 or 2 digits (0-9).
    (                # Start of a sub-pattern.
        (            # Start of a sub-pattern.
            (\.)     # A dot (escaped with a backslash).
            (\d+)    # One or more digits (0-9).
            (,)      # A comma.
        )            # End of a sub-pattern.
    )                # End of a sub-pattern.
    (\s*)            # Zero or more spaces.
    (                # Start of a sub-pattern.
        ([-+]?)      # An optional minus, or an optional plus. 
        ([\d]{1,3})  # 1 to 3 digits (0-9).
        (            # Start of a pattern.
            (\.)     # A dot (escaped with a backslash).
            (\d+)    # One or more digits (0-9).
        )?           # End of an optional pattern.
        (\))         # A closing parenthesis (escaped with a backkslash).
    )                # End of a pattern
$                    # The string must end this way (there can't be anything after).

이제 할 일은 자신을 제한, 어떤 것은 아니며 이 범위:

(-90 to +90, and -180 to +180)

그 대신 간단한 제한 자체가 이 범위:

(-99 to +99, -199 to +199) 

근데 요점은 바로 break down 각 부분을 주로 표현식에서는.

해설 (0)

다음은 좀 더 엄격한 버전:

^([-+]?\d{1,2}[.]\d+),\s*([-+]?\d{1,3}[.]\d+)$

'-' +90 90 latitudetm = '-'

  • 180 +180 '=' 경도 '-'
해설 (2)

파이썬.

Latitudetm: '결과 = 레지마치 (&quot. ^ [+ -]? ((90.? 0을 $) (([8 0]? [0-9]). " [0-9] $)), # 39, & # 39 &quot 90.00001&; -;)'

경도: '결과 = 레지마치 (&quot. ^ [+ -]? ((180.? 0을 $) (((1 [0-7] [0-9]) ([0-9] {0.2}). " [0-9] $)), # 39, & # 39 &quot 0.0000&; -;)'

예를 들어, latitudetm 장애가.

해설 (0)

s(공백)를 사용해야 하는 곳에 \w(단어 문자)를 사용하고 있는 것 같습니다. 단어 문자는 일반적으로 [A-Za-z0-9_]로 구성되므로 공백이 제외되어 선택 사항인 마이너스 기호 또는 숫자와 일치하지 않습니다.

해설 (0)

다음과 같은 형식에 사용할 수 있습니다: 31 ͦ 37.4' E

^[-]?\d{1,2}[ ]*ͦ[ ]*\d{1,2}\.?\d{1,2}[ ]*\x27[ ]*\w$
해설 (0)

@macro-ferrari I did it), 이것은 미리 견지에서 볼 수 있는 방법을 찾아야 줄여집니다 없이 모든 최근 이야기하고 [정규 표현식 엔진을 사용하는] [2]

const LAT_RE = /^[+-]?(([1-8]?[0-9])(\.[0-9]{1,6})?|90(\.0{1,6})?)$/;

! [입력하십시오. 이미지 여기에 설명을] [3]

const LONG_RE = /^[+-]?((([1-9]?[0-9]|1[0-7][0-9])(\.[0-9]{1,6})?)|180(\.0{1,6})?)$/;

! [입력하십시오. 이미지 여기에 설명을] [4]

[2]: https://swtch.com/ ~ rsc/regexp/regexp1.html

해설 (2)
  • 루비 *

경도 -179. 99999999.180

/^(-?(?:1[0-7]|[1-9])?\d(?:\.\d{1,8})?|180(?:\.0{1,8})?)$/ === longitude.to_s

Latitudetm -89. 99999999.90

/^(-?[1-8]?\d(?:\.\d{1,8})?|90(?:\.0{1,8})?)$/ === latitude.to_s
해설 (0)

간단한 방법으로 완전하고 정확한 위도와 경도 대한 객관적인 캜 체크 패턴 입니다.

 -( BOOL )textIsValidValue:(NSString*) searchedString
{
    NSRange   searchedRange = NSMakeRange(0, [searchedString length]);
    NSError  *error = nil;
    NSString *pattern = @"^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$";
    NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern: pattern options:0 error:&error];
    NSTextCheckingResult *match = [regex firstMatchInString:searchedString options:0 range: searchedRange];
    return match ? YES : NO;
}

여기서 는 입력입니다 시시드스타링 해당 사용자가 해당 textfield 입력하십시오. 있는 것이다.

해설 (0)

PHP

다음은 PHP& # 39 의 버전 (입력 값을 다음과 같습니다. '$ $ latitudetm' 와 '경도').


$latitude_pattern  = '/\A[+-]?(?:90(?:\.0{1,18})?|\d(?(?
해설 (0)

이 문제를 해결할 수 있습니다.

var latExp = /^(?=.)-?((8[0-5]?)|([0-7]?[0-9]))?(?:\.[0-9]{1,20})?$/;
var lngExp = /^(?=.)-?((0?[8-9][0-9])|180|([0-1]?[0-7]?[0-9]))?(?:\.[0-9]{1,20})?$/;
해설 (0)

이거 드세요.

^[-+]?(([0-8]\\d|\\d)(\\.\\d+)?|90(\\.0+)?)$,\s*^[-+]?((1[0-7]\\d(\\.\\d+)?)|(180(\\.0+)?)|(\\d\\d(\\.\\d+)?)|(\\d(\\.\\d+)?))$
해설 (0)

이거 드세요.


(?
해설 (2)
/(-?\d{1,2}[.]\d+)(?U:.*)(-?1?[0-8]?\d[.]\d+)/
해설 (0)