[php] Shift-JIS - 正規表現は例 > 팁앤테크

본문 바로가기
사이트 내 전체검색

팁앤테크

[php] Shift-JIS - 正規表現は例

페이지 정보

본문

正規表現は例えば、次のようにします。もちろんこれはShift-JISのみに有効です。

    $digit = '(?:[0-9]|\x82[\x4F-\x58])'; # 数字(半角と全角)
$upper = '(?:[A-Z]|\x82[\x60-\x79])'; # アルファベット大文字(半角と全角)
$lower = '(?:[a-z]|\x82[\x81-\x9A])'; # アルファベット小文字(半角と全角)
$space = '(?:[\ \n\r\t\f]|\x81\x40)'; # 空白文字(半角と全角)
$ascii = '[\x00-\x7F]'; # ASCII文字

# 全角平仮名(濁点・半濁点・踊り字を含む)
$hiraZ = '(?:\x82[\x9F-\xF1]|\x81[\x4A\x4B\x54\x55])';

# 全角片仮名(長音符・濁点・半濁点・踊り字を含む)
$kataZ = '(?:\x83[\x40-\x7E\x80-\x96]|\x81[\x5B\x4A\x4B\x52\x53])';

# 半角片仮名(半角長音符・句読点を含む)
$kataH = '[\xA1-\xDF]';

$onebyte = '[\x00-\x7F\xA1-\xDF]';
$twobyte = '(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';
$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

# JIS文字
$all_JIS = '(?:[\x00-\x7f\xa1-\xdf]|'.
. '\x81[\x40-\x7e\x80-\xac\xb8-\xbf\xc8-\xce\xda-\xe8\xf0-\xf7\xfc]|'
. '\x82[\x4f-\x58\x60-\x79\x81-\x9a\x9f-\xf1]|'
. '\x83[\x40-\x7e\x80-\x96\x9f-\xb6\xbf-\xd6]|'
. '\x84[\x40-\x60\x70-\x7e\x80-\x91\x9f-\xbe]|'
. '\x88[\x9f-\xfc]|\x98[\x40-\x72\x9f-\xfc]|\xea[\x40-\x7e\x80-\xa4]|'
. '[\x89-\x97\x99-\x9f\xe0-\xe9][\x40-\x7e\x80-\xfc])';

# ベンダ定義文字

# NEC特殊文字
$NEC_special = '(?:\x87[\x40-\x5d\x5f-\x75\x7e\x80-\x9c])';

# NEC選定IBM拡張文字
$NEC_IBM_ext = '(?:\xed[\x40-\x7e\x80-\xfc]|\xee[\x40-\x7e\x80-\xec\xef-\xfc])';

# IBM拡張文字
$IBM_ext = '(?:[\xfa-\xfb][\x40-\x7e\x80-\xfc]|\xfc[\x40-\x4b])';

Shift-JISでマッチを行う時には、2つの問題があります。

  1. 第二バイトがASCIIの領域に入る文字があるので、ASCIIを含むパターンにマッチする可能性がある。
  2. ある文字の第二バイトと次の文字の第一バイトが1文字であるかのようにマッチしてしまう。

後者はEUC-JPでも起こりうる問題です(UTF-8なら起こらないが、今はそれが問題なのではない)。しかし前者はEUC-JPでは起こらない が、Shift-JISでは起こりうる問題です。これらを防ぐ方法は、結局同じことですが、正規表現の中に、常に先頭を含ませることです。

추천0

댓글목록

등록된 댓글이 없습니다.

Total 825건 16 페이지
  • RSS
팁앤테크 목록
번호 제목 글쓴이 조회 추천 날짜
450 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 22114 0 03-27
449 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 19646 0 04-10
448 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 27903 0 04-20
447 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 22752 0 04-30
446 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 25475 0 05-07
445 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 19599 0 05-08
444 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 18133 0 05-08
443 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 21048 0 05-08
442 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 22793 0 05-12
441 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16111 0 05-18
440 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16743 0 05-21
439 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 19683 0 05-22
438 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 21563 0 05-31
437 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 22678 0 05-31
436 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 21088 0 06-11
435 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 21520 0 06-11
434 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 22589 0 06-12
433 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 25259 0 06-12
432 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 23048 0 06-12
431 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 19307 0 06-12
430 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 20312 0 06-14
429 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 17912 0 06-14
428 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 19256 0 07-21
열람중 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 22585 0 07-23
426 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 33871 0 08-06

검색

회원로그인

회원가입

사이트 정보

株式会社YHPLUS / 대표 : ZERO
〒140-0011 東京都品川区東大井2-5-9-203
050-5539-7787
오픈카카오톡 (YHPLUS) :
https://open.kakao.com/o/slfDj15d

접속자집계

오늘
4,101
어제
5,045
최대
9,679
전체
2,618,479
Copyright (c) 株式会社YHPLUS. All rights reserved.