2016-09-03 3 views
0

시작 문자와 세 가지 다른 끝 문자 사이에 3 개의 숫자 문자열을 추출해야합니다. _a로 시작하여 _b, _c 또는 _d로 끝납니다. 나는 strfind로 그것을하는 방법을 알고 있지만 정말로 regexp를 사용하는 방법을 알고 싶다. 두 문자 사이에서 문자열 추출하기 - Matlab (regexp)

예를 들어 문자열이 될 수있다 :

ggggga_a123_cggggg

또는/

gggggg_a345_bggggg

또는/

gggggg_a456_dggggg 난 그냥이 될 것입니다 종료되는 문자 모른 채 세 개의 숫자를 추출하려면 어떻게

. 감사

+1

시도한 정규 표현식은 무엇입니까? –

+0

'_f? (n_ \ m_ | w_)?' –

+0

방금 ​​regexp (s, '(? <= _ a). * (? = b_ | c_ | d _)', 'match'); 모든 인스턴스에서이 방법을 사용할 수 있습니까? –

답변

1

나는이 같은 정규식으로 갈 것 :

_a(\d{3})_[bcd] 

이것이 할 것입니다 것은 _a을 시작, 추출 캡처 그룹합니다 (())에서 3 자리 일치와 일치하고, 다음과 일치 두 번째 밑줄 및 b, c 또는 d 중 하나입니다.

관련 문제