*
은 character class ([...]
)의 메타 문자가 아니므로 전혀 이스케이프하지 않아도됩니다. 문자 클래스 내에서 [a-z]
과 같은 문자 또는 문자를 생성해야하기 때문에 이스케이프해야하는 것은 -
입니다. 이 (: [-+*]
또는 [+*-]
시작 또는 문자 클래스의 끝에서) 범위로 사용할 수 없습니다 수있는
그래서 대신 "[+-*]"
은 +
및 *
사용 "[+\\-*]"
또는 -
을 배치 사이에서 유니 코드 표에 배치 모든 문자를 나타냅니다.
BTW 당신은 당신이 (이 메타 문자 그래서 우리는 또한 탈출 할 필요가 \w
같은 표준 문자 클래스를 탈출하거나 액세스하는 데 사용됩니다) \\
로 정규식을 쓸 필요가 귀하의 사업자에하지만 이후 문자 \
을 추가하려는 경우 \
은 또한 문자열에서 특별하기 때문에 거기에서 탈출해야합니다. 그러면 "\\\\"
이됩니다.
또한 [0-9]
을 쓰는 대신 으로 문자열에 작성해야하는 \d
을 간단하게 사용할 수 있습니다. 당신이 +
하나 이상의 발생 또는 이전 요소를 나타냅니다 이후 +
대신 *
을 사용해야합니다 운영자에 의해 구분 된 문자열에서 두 개 이상의 숫자가있는 경우가 있는지 확인하려면 *
가 0 개 이상을 나타낸다
또 다른 것은,이다 발생.
그래서 코드는
line.matches("\\d+[+-*]\\d+");
처럼 보일 수 있습니다