preg_grep()
에 해당하는 Java가 있는지 누군가가 알 수 있습니까? 또는 동일한 것을 성취 할 수있는 좋은 방법을 제공합니까?PHP preg_grep에 해당하는 Java
preg_grep()
과 같이 입력 배열의 요소와 일치하는 문자열을 입력 배열의 인덱스와 함께 반환해야합니다.
preg_grep()
에 해당하는 Java가 있는지 누군가가 알 수 있습니까? 또는 동일한 것을 성취 할 수있는 좋은 방법을 제공합니까?PHP preg_grep에 해당하는 Java
preg_grep()
과 같이 입력 배열의 요소와 일치하는 문자열을 입력 배열의 인덱스와 함께 반환해야합니다.
정확히 일치하는 것은 없습니다. 그러나 String#matches(String) 함수를 사용하여 문자열이 주어진 패턴과 일치하는지 테스트 할 수 있습니다. 예를 들어 :
String s = "stackoverflow";
s.matches("stack.*flow"); // <- true
s.matches("rack.*blow"); // <- false
당신이 일치하는 인덱스와 결과 배열을 원하는 경우에, 당신은 문자열의 당신의 주어진 입력 배열을 통해 루프, 일치를 확인하고 그 결과 배열에 루프의 현재 인덱스를 추가 할 수 있습니다.
당신은String.matches()
를 사용하여 배열의 반복, 기능의이 종류를 사용할 수
:
public static List<Integer> preg_grep(String pattern, List<String> array)
{
List<Integer> indexes = new ArrayList<Integer>();
int index = 0;
for (String item : array) {
if (item.matches("ba.*")) {
indexes.add(index);
}
++index;
}
return indexes;
}
고마워, 내 일을해야한다고 생각해. 나는 자바에 익숙하지 않다. 스크립트 실행을 자동화하기 위해 나의 PHP 프로젝트를 자바로 포팅해야한다. 나는 자바에 익숙하지 않기 때문에, 나는 당신의 솔루션을 테스트하는 데 약간의 시간이 걸릴 것이다. – user3127090
같은 것에 대해 어떻게 :
private static String[] filterArrayElem(String[] inputArray) {
Pattern pattern = Pattern.compile("(^a.*)");
List<String> resultList = new ArrayList<>();
for (String inputStr : inputArray) {
Matcher m = pattern.matcher(inputStr);
if (m.find()) {
resultList.add(m.group(0));
}
}
return resultList.toArray(new String[0]);
}
그런 다음에 사용할 수 있습니다 다음과 같은 방법 :
String [] input = { "apple", "banana", "apricot"};
String [] result = filterArrayElem(input);
http://stackoverflow.com/questions/5084419/java-preg-match-array – Simon
나중에 참조 할 수 있도록 정규 표현식에 대한 질문은 언어/풍미 이외에도 [tag : regex] 태그가 있어야합니다. 태그 ([태그 : 자바], [태그 : PHP] 등). [tag : qregularexpression] 태그는 사용하지 않는 특정 구현을 나타냅니다. –