2012-10-30 1 views
5

는 다음 상수를 사용하는 '추가'가 패턴과 일치하지 않습니다. '^[a-z][a-zA-Z0-9]*$'.

'ADD'에 무엇이 잘못 되었습니까? '^[a-z][a-zA-Z0-9]*$'은 모든 이름이 낮은 문자로 시작해야한다는 의미입니까? 다른 가능성은 없습니까?

답변 해 주셔서 감사합니다. 당신이 원하는 일정한 경우

+2

지역 변수 , 클래스 필드 및 인스턴스 필드는 대문자로 표기해야합니다. ALL_CAPS는 정적 결승을위한 것입니다. – ignis

+0

^는 문자열 시작을 의미하고, [az]는 a와 z 사이의 1 문자 (= 1 소문자)와 일치하는 문자를 의미하고, [a-zA-Z0-9] *는 [a -zA-Z0-9] '이고 $는 문자열의 끝입니다. – ignis

답변

13
^[a-z][a-zA-Z0-9]*$ 

이 정규식은 소문자로 시작하고 나머지는 대문자, 소문자, 숫자로 구성되어 뭔가를 설명합니다. (예 : aVariable, variable, aNewVariable, variable7, aNewVariable7.) 당신은 당신의 분야가 일정하고 정적하려면

, 사용 :

static final String ADD = "Add text"; 

그렇지 않으면, 사용 :

final String add = "Add text"; 
+0

OP 질문의 첫 줄 : '다음 상수를 사용하고 싶습니다.' 그래서 그것은 확실히 상수입니다. 하지만 당신이 정규식을 설명하는 것이 좋습니다. +1. –

+0

@ SimonAndréForsberg 사실이지만 메서드 내에서 정의 될 수 있습니다 (분명하지는 않지만). 어쨌든 좋은 지적입니다. ;) – Eric

5

, 또한해야 static

static final String ADD = "Add text"; 

상수는 일반적으로 대문자를 사용하지만 변수가 정적이지 이후, 그것은 상수로 해석되지 않았습니다.