java中,Pattern.matches("\\d+","2223");返回的是true。
Pattern.matches("\\d+","2223");
如果Pattern.matches("\d+",匹配的又是什么呢?比如换行符"\n"要匹配的时候,难道也要像上面那样写成"\\n"才能匹配成换行符?那re中"\n"匹配的又是什么呢?
Pattern.matches("\d+",
"\n"
"\\n"
光阴似箭催人老,日月如移越少年。
d해보시면 알 수 있습니다. 오류: 오류: 잘못된 이스케이프 문자
d
+: 두 번 이상 일치하는 항목을 나타냅니다. d+은 d,...,ddd,... 등
d+
ddd
이전에는 이 문제에 주의를 기울이지 않았는데, 그러다가 몇 가지 정보를 찾아보게 되었습니다. 저도 방금 답변이 불완전했습니다.
은 \n 또는 n 또는
\n
n
첫 번째는 n을 정규식으로 직접 변환하여 일반 엔진에서 처리하는 것입니다. 두 번째는 n를 Java에서 직접 개행 문자로 변환하는 것입니다. 이는 'u000A'물론 정규식입니다. 표현식도 일치시킬 수 있습니다
'u000A'
마지막 질문은 리터럴 "\"+"n"을 일치시키는 것입니다. 정규식을 컴파일할 때 Pattern.LITERAL 을 사용하면 일반 엔진이 n을 및 , 개행 문자 n와 일치하는 것으로 간주되지 않습니다. 물론 첫 번째 방법을 사용해야 합니다 . 으아악
"\"
"n"
Pattern.LITERAL
귀하의 언어에는 일반 유형이 없고 문자열로만 표현될 수 있으므로 한 번 더 이스케이프해야 합니다. \n은 개행 문자와 일치하는 일반 n이고, n은 문자열 대체입니다. 물론 개행 문자와 직접 일치하는 것이 옳습니다.
d
해보시면 알 수 있습니다. 오류:오류: 잘못된 이스케이프 문자
+: 두 번 이상 일치하는 항목을 나타냅니다.
과 일치합니다.d+
은d
,...,ddd
,... 등이전에는 이 문제에 주의를 기울이지 않았는데, 그러다가 몇 가지 정보를 찾아보게 되었습니다. 저도 방금 답변이 불완전했습니다.
은
이어야 합니다.\n
또는n
또는첫 번째는
n
을 정규식으로 직접 변환하여 일반 엔진에서 처리하는 것입니다.두 번째는
n
를 Java에서 직접 개행 문자로 변환하는 것입니다. 이는'u000A'
물론 정규식입니다. 표현식도 일치시킬 수 있습니다마지막 질문은 리터럴
"\"
+"n"
을 일치시키는 것입니다. 정규식을 컴파일할 때
Pattern.LITERAL
을 사용하면 일반 엔진이n
을및 , 개행 문자
n
와 일치하는 것으로 간주되지 않습니다. 물론 첫 번째 방법을 사용해야 합니다. 으아악
귀하의 언어에는 일반 유형이 없고 문자열로만 표현될 수 있으므로 한 번 더 이스케이프해야 합니다.
\n
은 개행 문자와 일치하는 일반 n이고,n
은 문자열 대체입니다. 물론 개행 문자와 직접 일치하는 것이 옳습니다.