2016-09-29 14 views
2

" - "の後に "s"または "h"という正規表現が1つだけ必要です。 "-shshshshs"は一致し、 "-ssssss"も一致しますが、 "-so"は一致せず、どちらも "sh"になりません。 S "または "H" が、入力し "受け入れられた" -sho "と"Cの正規表現で文字列に特定の文字が含まれていないか確認してください。

/* Compile regular expression */ 
reti = regcomp(&regex, "-[sh]", 0); 
if (reti) { 
    fprintf(stderr, "Could not compile regex\n"); 
    exit(1); 
} 

/* Execute regular expression */ 
reti = regexec(&regex, "--sh", 0, NULL, 0); 
if (!reti) { 
    puts("Match"); 
} else { 
    puts("No match"); 
} 

感謝を事前に

-

はこれまでのところ、私は唯一の」文字列が含まれている場合は、" 一致することに成功しました。

答えて

2

は、あなたの正規表現エンジンは、それをサポートしている場合:それ以外の場合は

"-[sh]+$" 

"-[sh][sh]*$" 
+0

" - [sh] [sh] * $"は動作しました。ありがとう! – Synor

+1

@Synor: '-sh'がスキャンしている行または文字列の先頭にあることを意味する場合は、先頭(ダッシュの前)に'^'を追加する必要があります。 –

関連する問題