2016-07-08 4 views
-1

왼쪽 또는 오른쪽에 정수가없는 숫자와 일치하는 정규식을 쓸 수 있습니까? 우리는 이러한 문자열이있는 경우 :숫자 사이에없는 숫자 사이의 숫자 일치 방법

a20c 
20c 
.20c 
a20- 
120 

그것은 네 첫째,하지만 마지막 하나와 일치해야합니다.

+0

하나와 일치하는 모든 정수 할 것입니다 그것을 –

+0

'/^\ D + $ /' –

+0

당신은 중간 두 자리를 잡을 필요가 있는가 트릭을해야합니까? –

답변

1

이 정규식 패턴은 20 중간에 어딘가에 20을 터치하고있는 다른 문자가없는 텍스트와 일치합니다. 텍스트의 아무 곳에서나 나타날 수 있으므로 DM11 20-B과 일치하지만 DM1120-B은 일치하지 않습니다.

[^0-9]20[^0-9] 

이 아니면 조금 더 응축 :

\D20\D 
+0

다른 임의의 숫자 사이에 어디에도있을 수는 없습니다. 수단 20은 왼쪽 또는 오른쪽에만 다른 정수가 없습니다. –

+0

20 다른 숫자 사이에는 없지만 20은 다른 왼쪽 또는 오른쪽에 다른 정수가 없음을 의미합니다. 측면. 예를 들면. DM11 20-B와 일치해야하지만 DM1120-B가 일치하지 않아야합니다. –

+0

이러한 새로운 테스트 사례를 고려하여 내 대답을 업데이트했습니다. – Confiqure

0

당신은 당신의 자리가 아닌 자리에 둘러싸여 있는지를 만들기 위해 2 lookarounds를 사용할 수 있습니다

(?<=\D)\d+|\d+(?=\D) 

RegEx Demo

+0

번호 20에 대한 예제를 작성할 수 있습니까? –

+0

의미 : https://regex101.com/r/dG0cQ1/2? – anubhava

1

당신 사용 가능 ^\D{1}\d+\D{1}$

Olso 당신은 여기 정규식을 테스트 할 수 이 https://regex101.com/r/nU4jL1/2

+0

20 다른 임의의 디지트 수단 (20) 사이에는 어디에도있을 수 없지만, 단지 왼쪽 또는 오른쪽에 다른 정수가 없다. 예를 들어. DM11 20-B –

+0

Dunno와 일치해야합니다. 그러나이'\ D {1} 20+ \ D {1}'https://regex101.com/r/nU4jL1/3을 사용해보십시오. 예 DM11 20-B – rEDSAMK