CSS 선택기에 다음 중 하나가 있는지 알려주는 부울을 갖고 싶습니다.
하위 문자열은 table> tr # someid.someclass> td ...와 같은 결합자를 포함 할 수있는 선택기에서 일치해야합니다.
이것은 내 코드입니다.
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MultipleClassId {
private static final String regexs[] = {
"(#[^\\s\\+>~\\.\\[:]+)(\\.[^\\s\\+>~\\.\\[:]+)",
"(\\.[^\\s\\+>~\\.\\[:]+)(#[^\\s\\+>~\\.\\[:]+)",
"(\\.[^\\s\\+>~\\.\\[:]+)(\\.[^\\s\\+>~\\.\\[:]+)" };
public boolean isMultipleClassId(String selector) {
for (int i = 0; i < regexs.length; i++) {
Pattern p = Pattern.compile(regexs[i]);
Matcher m = p.matcher(selector);
if (m.find())
return true;
}
return false;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter selector: ");
String selector = input.next();
MultipleClassId specificityCalculator = new MultipleClassId();
boolean isMultiple = specificityCalculator.isMultipleClassId(selector);
System.out.println(isMultiple);
}
}
선택기의 첫 번째 요소에 "tr # someid.someclass"와 같은 다중 속성 선택기가 있고 위에 나열된 경우에 대해 패턴을 찾습니다. 그러나 "table tr # someid.someclass"와 같은 선택기가 있으면 false를 반환합니다.
그럼에도 불구하고 RegexPlanet에서는 올바르게 일치합니다 ( http://fiddle.re/ykedp 링크 확인 ).
내 Java 라이브러리 버전의 문제입니까? 아니면 내 코드에 문제가 있습니까? 감사!
문제는 단지
String selector = input.next();
대체해야하는
String selector = input.nextLine();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다