private static final String REGEX_OF_PRODUCT_ORDER = "^\\\\[(.+)-\\\\d+\\\\](,\\\\[(.+)-\\\\d+\\\\])*$";
\\\\[
: 대괄호 [
를 문자 그대로 매칭.
(.+)-\\\\d+
:
(.+)
: 대괄호 안에서 한 글자 이상의 문자열(아무 문자)을 매칭합니다.
.+
는 최소 한 글자 이상의 문자(공백 포함)를 의미합니다.( )
로 묶여 있어 캡처 그룹으로 처리됩니다.**: 하이픈(
)을 문자 그대로 매칭합니다.\\\\d+
: 하나 이상의 숫자(0-9
)를 매칭합니다.[Product-123]
(,\\\\[(.+)-\\\\d+\\\\])*
:
,
: 쉼표를 문자 그대로 매칭합니다.\\\\[(.+)-\\\\d+\\\\]
: 위에서 설명한 [문자열-숫자]
의 패턴을 다시 매칭합니다.이 부분은 쉼표로 구분된 [문자열-숫자]
패턴의 반복을 처리합니다.
,[Product-123],[Item-456]
$
:
위에꺼는 ^ 있고 없고 해봤어…
^([가-힣]+)(,([가-힣]+))*$ —> 콤마 기준으로 한글 추출 가능 match.find에 while넣고 Group()만 해줘
^(\s*|([가-힣]+)(,([가-힣]+))*)$ → 시작 부분에 공백 허용
^$|^[가-힣]+(,([가-힣]+))*$ → 아예 공백이거나 이렇게…
^$|^[가-힣\s]+(,([가-힣\s]+))*$
String REGEX_OF_PRODUCT_ORDER = "^\\\\[(.+)-\\\\d+\\\\](,\\\\[(.+)-\\\\d+\\\\])*$";