2009-07-15 6 views
1

나는이 컬렉션에있는 클래스에 정의 된 클래스 (MovieClip, Sprite, 클래스 경로에 정의 된 클래스와 함께)의 존재 유형에 대한 actionscript 3 코드 행을 검사하는 코드를 작업 중입니다. 반복되고있다. 자바 정규식 문제

Custom type: fSceneController 
Contains flash type: Scene 

는 그래서 .contains 방법이 제대로 작동하지 않습니다

for (String type: typeList) { 
    if (input.contains(type)) { 
     // dome something here 
    } 
} 

문제는이 사용자 정의 유형 이름의 일부는 또 다른 유형의 이름을 포함합니다. 패턴에서 유형을 검사하는 루프에서 정규 표현식을 사용하려고 생각하고 유형 바로 앞이나 뒤에 -zA-Z0-9가 없는지 확인합니다.

사람이 나를 유형 자체가 텍스트의 일부를 포함 할 수있는 다른 유형에서 분명히 감지 할 수 있도록 내가 이전과 입력 한 후 넣어해야하는지 확인하는 데 도움이 될 수 있습니다

Pattern p = Pattern.compile("<stuff here>"+ type + "<more stuff here>"); 
?

아니면 같은 목표를 달성하는 데 사용할 수있는 다른 방법을 제안 하시겠습니까? 난 당신이 뭘하려고하는지 분명히,하지만 난이 당신이 정규식에서 단어 단지 단어를 원하는 경우

누락하는지 생각

답변

6

확실하지, 다음 \ B를 넣어 예를

에 대한
\bhe\b will only match the first of... 

he 
she 
the 
they 
+0

처럼뿐만 아니라 길이를 확인 할 수 있습니다. 정규 표현식의 힘은 아무런 경계도 모른다. –

+1

시원하고 기쁜 소식이었습니다. 나는 \ b가 경계를 의미한다고 생각한다. 구두점을 올바르게 처리합니다. –

+0

그냥 컨텍스트를 제공하기 위해, 나는 haxe 번역기에 actionscript 3을 쓰고 있습니다. 언어가 타입과 임포트를 다루는 다른 방법에 대해서, 클래스에서 사용되는 모든 타입은 임포트 스테이트먼트가 확장 될 수 있도록 (haxe는 와일드 카드 임포트를 지원하지 않음) 검출되어야하므로, 다른 타입이 검출되는 원래의 문제 실제로 사용되지는 않았습니다. –

-1

, 앞과 뒤에 당신은 와우 내가 간단이었다 믿을 수 없어이

for(String type : typeList) 
    if(input.contains(type) && input.length() == type.length()) 
     System.out.println("Found " + type); 
+0

은 검색 할 유형의 길이보다 훨씬 길 수 있습니다. 전체적인 문제는 유형이 다른 텍스트와 혼합되어 다른 텍스트 및 다른 알려진 유형과 구분되어 감지되어야한다는 것입니다. –

+0

오, 예 - 문제의 그 부분을 완전히 읽었습니다. –