2014-06-14 3 views
-3
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]=[a-zA-Z0-9]+$"); 

PROPERTIES 파일 형식을 복사 할 패턴을 만들려고합니다. 그러나 등호 앞에있는 문자열이 한 문자 인 경우에만 코드가 작동합니다. AnyLetterOrNumberInUndefinedAmount = AnyLetterOrNumberInUndefinedAmount 내 코드를 해결하기 위해 할 수있는 일Java REGEX 패턴 일치 2

:

내 결말 목표는 다음과 같이하는 패턴을 가지고있다.

+1

는 어떻게 여러 문자를받을 수 있나요? 당신이 정규식에서 이미 더 많이하고있는 것을 의미합니다 ... –

+1

마지막에했던 것처럼'='앞에'+'를 추가하면 어떨까요? –

+0

@SotiriosDelimanolis 만약 내가 그렇게하면 구문 오류가 발생합니다. – Arc

답변

1

시도 "^([^=]+)=(.+)$". 이렇게하면 나중에 검색 할 수있는 일치하는 그룹에있는 등호 기호 양쪽에식이 배치되며 두식이 모두 첫 번째 등호 기호 자체를 제외한 모든 항목과 일치합니다.

+ 접미사는 두 표현식이 모두 하나 이상의 문자를 포함해야 함을 의미합니다. 양쪽에서 아무 것도 찾을 수 없게하려면 +를 *로 바꿉니다.

자세한 내용은 http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html을 참조하십시오.

+0

고맙습니다. 이것은 나에게 좋은 참고서입니다. 패턴 문제가 많아지면 다시 살펴볼 것입니다. – Arc

+0

이것을 시도하십시오. Java SE 8로 업데이트되었습니다. [패턴 클래스] (http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html) –

1

이 시도 :

Pattern pattern = Pattern.compile("^[a-zA-Z0-9]+=[a-zA-Z0-9]+$"); 
+0

고맙습니다.이 기능이 작동합니다! 왜 등호 앞에 + 또는 *를 추가해야합니까? – Arc

+0

나는 일치하는 그룹이 0 개 이상일 때 *를 편집 했으 며 +는 일치하는 그룹이 하나 이상있을 때까지 일치합니다. 일치하지 않으면 일치하는 숫자가 –

+0

이며 더 자세한 정보는 다음을 방문하십시오 : [한정자 ] (http://docs.oracle.com/javase/tutorial/essential/regex/quant.html) –

1

당신의 패턴에서해야한다 "(^ [A-ZA-Z1-9] ) = (.)"

1

지금 당신의 첫 번째 문자 세트/클래스는 단지의 1 문자 (az에, AZ에, 09에)

쉽게 수정 및 실수 수 있습니다 문자 클래스 뒤의 + 한정 기호 의미 (1 번 이상)를 추가하십시오.

Pattern pattern = Pattern.compile("^[a-zA-Z0-9]+=[a-zA-Z0-9]+$"); 
              ^

Live Demo

+0

예, 패턴에서 왜 [a-zA-Z0-9]의 한 인스턴스 만 허용하는지 설명 할 수 있습니까? 등호 뒤에 있지만 등호 뒤에는 여러 인스턴스가 포함될 수 있습니까? – Arc

+0

@Arc 내 대답이 업데이트되었습니다. – hwnd

+0

감사합니다. 지금은 이해합니다. – Arc