java中re正则表达式的一个疑惑
大家讲道理
大家讲道理 2017-04-18 09:31:00
0
2
410

java中,Pattern.matches("\\d+","2223");返回的是true。

如果Pattern.matches("\d+",匹配的又是什么呢?
比如换行符"\n"要匹配的时候,难道也要像上面那样写成"\\n"才能匹配成换行符?那re中"\n"匹配的又是什么呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(2)
阿神

d해보시면 알 수 있습니다. 오류:
오류: 잘못된 이스케이프 문자


+: 두 번 이상 일치하는 항목을 나타냅니다.
d+d,...,ddd,... 등

과 일치합니다.

이전에는 이 문제에 주의를 기울이지 않았는데, 그러다가 몇 가지 정보를 찾아보게 되었습니다. 저도 방금 답변이 불완전했습니다.

\n 또는 n 또는

이어야 합니다.

첫 번째는 n을 정규식으로 직접 변환하여 일반 엔진에서 처리하는 것입니다.
두 번째는 n를 Java에서 직접 개행 문자로 변환하는 것입니다. 이는 'u000A'물론 정규식입니다. 표현식도 일치시킬 수 있습니다


마지막 질문은 리터럴 "\"+"n"
을 일치시키는 것입니다. 정규식을 컴파일할 때 Pattern.LITERAL 을 사용하면 일반 엔진이 n 및 , 개행 문자 n와 일치하는 것으로 간주되지 않습니다. 물론 첫 번째 방법을 사용해야 합니다
. 으아악

左手右手慢动作

귀하의 언어에는 일반 유형이 없고 문자열로만 표현될 수 있으므로 한 번 더 이스케이프해야 합니다.
\n은 개행 문자와 일치하는 일반 n이고, n은 문자열 대체입니다. 물론 개행 문자와 직접 일치하는 것이 옳습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿