2014-01-09 1 views
2
(*로) 표시 라인에 맞게 올바른 정규 표현식 구문을 얻으려고 노력

: 내가 원하는 무엇또 다른 간단한 정규식 일치

#32 0 0 A [2] * 
#13 3 2 A [1] 
#44 1 2 A [2] 
#44 0 0 A [1] 
#44 0 0 A [2] * 
#44 0 0 B [2] * 

이 포함 된 "0 0"어딘가에 그 이후로 "[2]"라인입니다 . 모든 문자는 두 규칙 이전, 중간 또는 후에 발생할 수 있습니다. 나는 그것을 완료 어떻게

#.. 0 0 

:

이것은 내가 첫 번째 부분을 발견하는 오늘이 무엇인가?

또한 누구나 나를 같은 정규 표현식 신자를위한 좋은 URL을 공유하고 싶다면 더욱 감사 할 것입니다!

+0

힌트 : 교대가'입니다 |'. –

+1

http://www.regular-expressions.info/ – Achrome

+2

정규식의 맛은 무엇입니까? 펄, 파이썬 POSIX ERE 등? –

답변

1

`제가 원하는 것은 포함 라인 "0 0"어딘가에 그 이후로 "[2]" . 모든 문자는 당신이 정규식을 사용할 수 있습니다

사이에, 전에 발생할 수 있습니다

^#[0-9]{2} 0 0.*?\[2\] 

설명 :

^ assert position at start of the string 
# matches the character # literally 
[0-9]{2} match a single character present in the list below 
Quantifier: Exactly 2 times 
0-9 a single character in the range between 0 and 9 
0 0 matches the characters 0 0 literally 
.*? matches any character (except newline) 
Quantifier: Between zero and unlimited times, as few times as possible, expanding as needed [lazy] 
\[ matches the character [ literally 
2 matches the character 2 literally 
\] matches the character ] literally 
0

방법에 대한 다음과 같은 :

echo '#32 0 0 A [2] 
#13 3 2 A [1] 
#44 1 2 A [2] 
#44 0 0 A [1] 
#44 0 0 A [2] 
#44 0 0 B [2]' | grep -E '.*0 0.*\[2\].*' 
+0

Downvoters는 설명합니다, 결코 보복하지 않습니다. –

0

당신은 사용할 수 있습니다

#.. 0 0.*\[2\].*