2015-10-30 3 views
1

Я собираюсь начать рисунок с использованием кода:Matlab: использование регулярных выражений

A = 'G1(General G1Airlines american G1Fungus)'; 

Использование регулярных выражений (или любой другой функции) в Matlab я хочу четко определить местонахождение: G1, G1A и G1F.

В настоящее время, если я пытаюсь сделать что-то как:

B = regexp(A, 'G1') 

Он не в состоянии отличить G1 с G1A и G1F то есть мне нужно, чтобы заставить сравнение, чтобы найти меня только случай с G1 и игнорировать G1A и G1F.

Однако, когда я ищу G1A, он все равно должен найти мне место G1A.

Может кто-нибудь помочь?

Edit: Еще один случай для А:

A = 'R1George Service SmalR1Al C&I)'; 

И выражение на этот раз мне нужно найти это R1 и R1A вместо этого.

Редактировать: У меня есть гигантский массив, содержащий A и другой большой вектор, содержащие G1, R1 и т. Д. Мне нужно искать.

+0

Ваш вопрос после путаницы с редактированием. Теперь я не понимаю, что вы хотите, и я не уверен, что мой ответ удовлетворяет вопрос? – IKavanagh

+0

Я попытался уточнить, ясно ли это? – Zanam

+0

Я думаю, что мой ответ должен удовлетворить ваши потребности. Я прав? – IKavanagh

ответ

6

Если вы хотите найти 'G1' но не 'G1A' или 'G1F' вы можете использовать

>> B = regexp(A, 'G1[^AF]') 
B = 
    1 

Найдет 'G1' и ^ используется для указания того, что он должен не любые символы, содержащиеся в []. Тогда вы могли бы использовать

>> B = regexp(A, 'G1[AF]') 
B = 
    12 32 

найти как 'G1A' и 'G1F'.

Смежные вопросы