- 締切済み
正規表現 半角英数字が混じっている場合
正規表現について教えてください。 入力フォームより都道府県を入力した際に、 "東京都AAS421SBBss" や "AA1sss東京都" など、一部に半角英数字が含まれている場合、 どのような正規表現でマッチするのでしょうか? if(!preg_match("/[\xA1-\xFE][\xA1-\xFE]/",$address)) 感じで行ったのですが、最初に半角英数字だとマッチするのですが、 途中に半角英数字がある場合、マッチしなかったりと。 よろしくお願いいたします。
- good4you4y
- お礼率24% (8/33)
- PHP
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- eitetsu
- ベストアンサー率64% (22/34)
例としてあげている正規表現の場合、全角の文字を検索していませんか? 半角の英数字であれば、"/[A-Za-z0-9]/"でマッチすると思うのですが・・・。
関連するQ&A
- 正規表現の書き方について
$a=aaaaaaあああ1111いいい2222; 上記の$aを <br>aaaaa<br>aあああ<br>1111いいい<br>22222<br> このようにしたいのですが、 条件1:半角英数字の頭に<br> 条件2:半角英数字が5つ続いたら<br> としたいのですが、正規表現の記述方法で悩んでいます。 $b=preg_match([a-zA-Z0-9],$a)がに該当したら これで受け取ったものをpreg_replace<br>で挟む?のでしょうか。 そもそも条件は1つ以上指定できないのかもしれませんが・・・。 何かご存知の方いましたらご教授お願いいたします。
- ベストアンサー
- PHP
- 正規表現のコーディングについてお願いします。
こんにちは、よろしくお願いいたします。 正規表現パターンを書く場合に皆さんがどのようにされているか教えてください。 例えば(ちょっとムリヤリ感が強いですが)、'Price \5800-' という文字列の \5800 の部分に preg_match でマッチさせたいとします。 単純に考えると、 /\\\d+/ のようなパターンが思いつくのですが、それを文字列として preg_match に渡す際に、コードはどのように書かれますか? <?php $str = 'Price \5800-'; //とりあえず、'/\\\d+/' と書き、'/\\\\\\d+/' と、\ をそれぞれの \ に書き足す if ( preg_match('/\\\\\\d+/', $str, $match) ) { print_r($match); } ?> 「まず、パターンを書き、全ての \ の前に \ を書き足す。」というのが無難なのかな?と思い、そうしていますが、 そういった考え方で間違っていないでしょうか? どうぞよろしくお願いいたします。
- 締切済み
- PHP
- PHPの正規表現「preg_match」で漢字を含む場合のマッチパター
PHPの正規表現「preg_match」で漢字を含む場合のマッチパターンについて 宜しくお願い致します。 preg_matchを使っての正規表現で、「あいうえおかきくけこ3月10日さしすせそ」という文字列から「3月10日」だけを抽出するには、どういうパターンが良いのでしょうか? 下記の様にやってみましたが、だめでした。。。 preg_match("/\d{1,2}[月]\d{1,2}[日]/",$hoge,$match) これではうまくいきません。 どなたかお助けくださいー!
- ベストアンサー
- PHP
- 全角カタカナの正規表現
if (preg_match('/[ァ-ヶー]+/', $value, $match )) { print ("$value"."はカタカナです。"."($match[0])"."<br />") } else { print ("$value"."はカタカナではない。<br />"); } という感じで全角カタカナにマッチさせる正規表現を使いたいのですが、このやり方だと「全角カタカナを含んでいる…」という表現になってしまいます。ある文字列が「すべて全角カタカナである」という正規表現を考えているのですが、なかなかうまくいきません。逆引きのサンプルなんかでもなかなか見つからなくて困っています。 同様に「すべて平仮名にマッチ!」というのにも応用できると思うのですが、なかなかうまく行きません。 是非、そのやり方やヒントをおしえてください。 マルチバイト対応なので[ぁ-ん]のような形で表記できます。またPerl互換(preg_match)で作っているので、Perlに詳しい方も是非是非おしえてください。
- ベストアンサー
- PHP
- 「半角数字」と「+」を許可する正規表現の書き方
「半角数字」と「+」(半角プラス)を許可する正規表現を書きたいです。 検索していて このような電話番号のチェックはよく見掛けます。 preg_match('/^\d{2,5}-?\d1,5}-?\d{3,5}$/', $tel) 今回は、下記のデータを許可したいです。 1+ 1254+ 21+1000+ 5154+45+987+201+ 桁の指定は不要で、+の後ろには数値が無い場合もあります。 「+」は数字の後に必ず付いてきます。 宜しくお願い致します。
- ベストアンサー
- PHP
- 正規表現/Uについて
正規表現/Uについて preg_match('/^(.*)(:([0-9]+))?$/U',$HTTP_SERVER_VARS['HTTP_HOST'],$matches)のUは改行などがあってもマッチさせるために入れてあるのでしょうか。また/^(.*)(:([0-9]+))?$/UのUをなくして*や+や?を加えて表すとどんな式になるのでしょうか。
- 締切済み
- PHP
- PHPの正規表現で住所を分けるには?
住所を郡市町村までと、それ以降に分けたいと考えています。 preg_match('/(.*)(郡|市|町|村)(.*)/',$text,$match); $address1 = $match[1].$match[2]; $address2 = $match[3]; 住所の最初に出てきた郡市町村にマッチさせるにはどうしたら良いのでしょうか? 正規表現の勉強に役立つサイトもあれば教えて下さい。
- ベストアンサー
- PHP
- 文字列全体に対する置き換え [正規表現]
正規表現での文字列全体に対する、マッチ箇所 への置き換えについて、アドバイスをもらえないでしょうか。 parlでいうg修飾子はphpには無く、 例えば、[preg_match]は[preg_match_all]という関数で対応出来ますが、 置き換えを行う[preg_replace]には[preg_replace_all]がありません。 それに類する関数も無いように思います。 これに関して、PHPではどのように対応すれば良いのでしょうか。
- ベストアンサー
- PHP