2015-01-26 3 views
-3

예 : if(str.matches(".*\\d.*"))"\ d"는 java에서 어떻게 작동합니까?

최근에 배열 값에 숫자가 포함되어 있는지 확인하기 위해 사용했습니다.

뒤에있는 논리는 무엇입니까? .* .*이있는 이유는 무엇입니까? \\d의 의미는 무엇입니까?

편집 : 모두에게 감사합니다! 빠른 응답 :

+5

하면 사용하는 방법에 대한 JavaDoc을보고 봤어 :

은 자세한 내용 당신은 여기에 많은 정규식 자습서를 검토 할 수 있습니다? 힌트! –

+0

아아 나는 그것을 찾으려고 노력했지만 어떤 이유로 javadocs 패턴이 나타나지 않았다. 가장 직관적 인 대답을 얻을 수 있는지 여기에서 묻고 싶습니다. 힌트를 가져 주셔서 감사합니다. –

+0

[참고 -이 정규식의 의미는 무엇입니까?] (http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean) – nhahtdh

답변

1

.*은 문자의 스퀘어를 의미합니다. 그것은 더 많은 문자와 일치합니다.

\\d

그래서 당신이 한 자리에 포함 된 모든 문자열과 일치하는 숫자를 의미한다. 자세한 내용은 Pattern 클래스의 설명서를 참조하십시오.

+1

정확하십시오. '. *'는 * 문자 *, 0 이상의 임의의 * 순서를 매치합니다. (a * 기호 * - '+'또는 '-'.) 그리고 : * 적어도 * 하나의 숫자를 포함하십시오. – laune

+0

@laune 나는 끝냈다. – Jens

0

이것은 정규 표현식입니다.

  • .

  • * 의미 모든 문자를 (0을 포함!) [그 전에 정규]
  • \\d이다

그래서, ID 당신이 모두 함께 넣어 숫자를 임의의 숫자를 의미 이 정규식은 다음을 포함하는 문자열과 일치합니다. 임의의 숫자의 문자, 그 다음 숫자 및 임의의 숫자의 문자. 우리가이 "형식적인"설명을 사람이 읽을 수있는 것으로 해석한다면, 어딘가에 숫자가있는 문자열을 의미합니다.

0

\ d는 '\'가 이스케이프 시퀀스이므로 임의의 숫자가있는 것을 의미하므로 '\\'이 사용됩니다.

C#에서,

* 문자의 수를 나타낸다 당신은 또한 @".*\d.*" (자바 확실하지 않음을하지만 난 그것을 작동한다고 생각)을 사용할 수 있습니다.

1
  • . 기호는 개행을 제외한 모든 문자와 일치합니다.
  • *은 0 번 이상 문자를 반복합니다.
  • \d은 임의의 숫자와 일치합니다. \\d에있는 \은 문자열에서 백 슬래시를 이스케이프하는 데 사용됩니다.

그래서 .\\d.은 단일 문자, 숫자 및 모든 단일 문자와 일치합니다. 그것은 일치 다음 a1b, p3k, &[email protected]

.*\\d.* 일치하는 0 개 이상의 문자, 숫자, 0 개 이상의 문자. 당신이 1 개 이상의 문자를 일치 시키려면 2, 11, 123, asdf6klj

사용할 수 +, {2,}, {3,5} 등 : 그것은 다음과 일치합니다

+은 이전 문자를 1 번 이상 반복한다는 것을 의미합니다.

{2, }은 이전 문자를 두 번 이상 반복한다는 의미입니다.

{3, 5}은 이전 문자를 3-5 회 반복한다는 것을 의미합니다.

http://www.tutorialspoint.com/java/java_regular_expressions.htm

관련 문제