2012-08-06 3 views
0

여러 문서와 다양한 형식으로 여러 번 나타날 수있는 다음 문자열이 주어지면 따옴표 사이에있는 부분을 추출하려고합니다. I 다음 조건을 만족하는 문자열 만 필요합니다. 시작하고 끝나는 "(두 인용문 사이) 및 1 개 이상의 도트를 갖는 (.) 문자열 내에.문자열에서 점 경로를 끌어 오는 Regex/grep

@CheckWith (값 = PasswordCheck.class 메시지 ="validation.password.blah.foo ")

다음 정규식

(\")([a-zA-Z]{1,}\.{1}){1,} 

답변

1

다음보십시오 .foo을 나에게 문자열 validation.password.blah의 첫 세 부분을 제공하지만 그리워 :

"([a-zA-Z]{1,}\.[a-zA-Z.]{1,})" 

참고 그 대신 {1,} 일반적으로 +을 사용할 수 있지만 grep이 확장 옵션없이 지원하는지 확실하지 않습니다.

설명 :

"     # match a literal '"' character 
(     # start capture group 
    [a-zA-Z]{1,}  # one or more letters 
    \.     # match a literal '.' character 
    [a-zA-Z.]{1,}  # one or more letters or '.' characters 
)     # end capture group 
"     # match a literal '"' character 
0

난 당신이 찾고있는 정규 표현식이 생각 : 그것은 늘 " 마지막을 포함 만 점 사이의 편지를 받아 들일 것을 "[a-zA-Z]+(\.[a-zA-Z]+)+

당신은 마음에 있어야합니다.

0

당신이 egrep (또는 grep -E)가있는 경우, 당신은 (필요한 경우 탈출, 따옴표는 정규 표현식의 일부)

"([a-zA_Z]+\.)+[a-zA-Z]+" 

가 사용할 수 있습니다.

관련 문제