10 개의 정규 표현식과 정확히 10 개의 정규 표현식 중 하나와 일치하거나 일치하지 않는 1 개의 문자열이 있습니다. 누구든지 내 정규 표현식 (있는 경우)이 내 문자열과 일치하는지 파악하는 간단한 방법을 알고 있습니까? 나는 문자열에 대해 각각을 간단히 테스트 할 수 있다는 것을 알고 있지만 정규 표현식과 문자열을 입력 할 수있는 라이브러리가 있는지 알고 싶습니다. 정규 표현식이 일치하는지 알려줄 것입니다. 결과 정규 표현식마다 비즈니스 로직이 달라지기 때문에 일치하는 정규 표현식을 알아야합니다.어떤 정규식이 내 문자열과 일치하는지 어떻게 알 수 있습니까?
2
A
답변
4
찾고 계신 API는 다음과 같습니다. 10 개의 표현식 각각에 대해 호출하십시오!
public boolean testMatch(String data, String regEx) {
return data.matches(regEx);
}
더 일반적으로 만들어 보겠습니다.
public String testMatch(String data, String... regExs) {
for(String regEx : regExs) {
if(data.matches(regEx)) {
return regEx;
}
}
return null;
}
0
이 밖으로 시도 :
String charsequence = "Whatever";
List<Pattern> patterns = null/* Place here all your RegExp*/;
Matcher matcher = null;
for (Pattern p: patterns) {
matcher = p.matcher(charsequence);
if (matcher.matches()) {
// It matches, do stuff
break;
}
}
그것이 도움이되기를 바랍니다.
감사
+0
외부 소스에서 온 - 어일 (on-the-fly) 방식으로 사전 컴파일 할 수 있는지 미리 알 수는 없으므로 사전 컴파일로 거의 이점을 얻을 수 없습니다. – adarshr
0
당신이 표현이 일치하는에 따라 다른 논리를 가지고가는 것을보고. 나는 당신이 각 옵션을 반복하는 것을 피할 수 있다고 생각하지 않는다. (또는 각 옵션을 통해 다른 클래스 루프를 갖는 것).
정규 표현식과 동작을 수행하는 클래스를 만들 수 있으며 String을 해당 클래스에 전달하고 일치하는 것으로 판단 할 때 액션을 수행하고 구조와 같은 스위치를 사용하여 수행 할 동작을 결정하도록 할 수 있습니다 .
관련 문제
- 1. E4X 표현이 일치하는지 어떻게 알 수 있습니까?
- 2. 정규식이 C#에서 전체 문자열과 일치하는지 확인하는 방법은 무엇입니까?
- 3. 많은 수의 정규 표현식에 대해 신속하게 테스트하고 어떤 정규 표현식이 일치하는지 어떻게 알 수 있습니까?
- 4. preg_replace()가 start와 일치하지 않거나 일치하는지 어떻게 알 수 있습니까?
- 5. 어떤 .emacs 파일이로드되었는지 어떻게 알 수 있습니까?
- 6. , 어떤 페이지가 현재인지 어떻게 알 수 있습니까?
- 7. 내 코드가 어떤 모듈에서 실행되고 있는지 어떻게 알 수 있습니까?
- 8. 어떤 파일이 상수인지 어떻게 알 수 있습니까?
- 9. 어떤 행을 클릭했는지 어떻게 알 수 있습니까?
- 10. 어떤 유형의 데이터베이스인지 어떻게 알 수 있습니까?
- 11. 어떤 기능이 호출되는지 어떻게 알 수 있습니까?
- 12. 내 UITextView를 스크롤하면 어떻게 알 수 있습니까?
- 13. Google지도는 내 위치를 어떻게 알 수 있습니까?
- 14. 어떤 헤더에서 어떤 기능이 사용되고 있는지 어떻게 알 수 있습니까?
- 15. 어떤 클래스에서 어떤 함수가 호출되었는지 어떻게 알 수 있습니까?
- 16. 어떻게 알 수 있습니까?
- 17. 어떤 정규식이 필요합니까?
- 18. 어떻게 문자열과 bool 배열을 비교할 수 있습니까?
- 19. 어떤 스크립트가 fopen을 사용하고 있는지 어떻게 알 수 있습니까?
- 20. Bundler는 어떤 환경을 사용해야하는지 어떻게 알 수 있습니까?
- 21. iPhone : 어떤 터치가 종료되었는지 어떻게 알 수 있습니까?
- 22. 종속성 워커는 모듈의 어떤 기능이 사용되는지 어떻게 알 수 있습니까?
- 23. 사용자가 어떤 TcxGrid 행을 드롭했는지 어떻게 알 수 있습니까?
- 24. 어떤 컨트롤에 포커스가 있는지 어떻게 알 수 있습니까?
- 25. WPF 창이 어떤 모니터인지 알 수 있습니까?
- 26. PHP에서 어떤 포함 경로가 사용되는지 어떻게 알 수 있습니까?
- 27. 보기는 어떤 구성 요소를 만들 것인지를 어떻게 알 수 있습니까?
- 28. 어떤 데이터 구조가 필요한지 우리는 어떻게 알 수 있습니까?
- 29. 어떤 버튼을 클릭했는지 어떻게 알 수 있습니까? Objective C
- 30. 어떤 클래스 메소드가 사용되고 있지 않은지 어떻게 알 수 있습니까?
이 접근법의 단점은 'testMatch' 메소드를 호출 할 때마다 모든 패턴을 다시 컴파일해야한다는 것입니다. – redent84
예, 물론 우리는 당신이 보여준 것처럼 미리 컴파일 된 패턴을 가질 수 있습니다. 그러나 정규 표현식의 목록은 동적입니다. 'Pattern.compile'을 사용하면 많이 절약하지 못할 것입니다. – adarshr