2011-04-18 6 views
0

나는 문자열의 종류와 일치하는 정규식이 필요합니다어떻게하면 값과 일치하는 정규식을 만들 수 있습니까?

brand-new-car 
brand-new-car-1 
brand-new-car-100 
307 

난 그냥 상관없이 문자열이 -count이 있는지 여부의 "이름"을 잡을 필요가; like :

brand-new-car 
brand-new-car 
brand-new-car 
307 

이 정규식은 올바르게 작동하지 않습니다. 그 $1-count없이 전체 문자열입니다.

(\S+)(?:-\d+|)$ 
+0

[Rubular : Ruby 정규 표현식 편집기] (http://www.rubular.com/)를보십시오. 이런 종류의 일에 매우 편리합니다. –

답변

6

rubular를 검사 작동합니다.

var re = new RegExp("^(\\S+?)(?:-\\d+)?$"); 

var testStrings = [ 
    "brand-new-car", 
    "brand-new-car-1", 
    "brand-new-car-100", 
    "307" 
]; 

for (var i=0; i<testStrings.length; i++) { 
    var result = re.exec(testStrings[i]); 
    say("result: " + result); 
} 

결과 : 나는 정규 표현식을 만들와 미래를 만드는 방법을 배울 수 txt2re.com 매우 유용 발견했습니다

result: brand-new-car,brand-new-car 
result: brand-new-car-1,brand-new-car 
result: brand-new-car-100,brand-new-car 
result: 307,307 
0

그냥 파이프를 제거하는 '|', 그것은

(\S+)(?:-\d+)$ 

여기에 첫 번째 캡처 그룹 "게으른"또는 비 욕심해야

+1

나는 그렇게 생각하지 않는다. 보기 : http://rubular.com/r/v34BTLwbwX –

+0

예, 내 잘못으로 다른 옵션을 확인하지 못했습니다. – megas

1

. 시도 해봐.

1

이것을 시도 (^ [\ w -] + *.?) (XMS를?) (= \ 승 -] + |? \ Z) 여기서 아래 정규식 버디의 이미지 enter image description here

문자열에 -count가 있는지 여부에 관계없이 "이름"을 잡을 수 있습니다. 노란색 및 파란색 전경은 다른 선택 항목을 강조 표시합니다.

관련 문제