プロが教える店舗&オフィスのセキュリティ対策術

プログラミングの正規表現について伺いたいことがあります。

タイトルにあるように「ますか?」と「ます?」をひっぱってくるためには、つまり、ある文字はあってもなくてもよい(この例ですと「か」)どのように書けばいいのでしょうか。

よろしくお願いします。

A 回答 (2件)

/ますか??/



と、あっても無くてもいい文字の後に ? をつけます。もちろん半角で。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/10/22 03:38

正規表現は、その処理する言語、ライブラリで違うので、どれを使うか指定が無いと正解は出せないのですが。



ある表現が複数回、というのは、「量指定子」を使って表現します。
今回の例なら「『か』が0または1つ」となります。

多くの処理系では、 ?で「0または1つ」となります
「か?」 で 「『か』が0個または1個」の意味です。

「ますか??」 (紛らわしいですが、最初の?は半角、後ろは全角です)
で、
「ま」のあとに「す」、そのあとに「『か』が0はまたは1」、そのあとに「?」
というパターンに一致します。


処理系によっては、「か」などの日本語の文字を「文字」として処理できないものもあります。
その場合、「か」を表わす複数のバイト列のうち、最後のものにだけ ? が有効になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/10/22 03:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!