文字列処理

マッチ回数

文法意味
{N}直前の正規表現のN回繰り返しにマッチする
{M,}直前の正規表現のM回以上繰り返しにマッチする
{,N}直前の正規表現のN回以下繰り返しにマッチする
{M,N}直前の正規表現のM回以上N回以下繰り返しにマッチする

エスケープ文字

エスケープ文字意味
\s空白・スペース
\wa-zを表す
\d0-9を表す
\b単語の境界にマッチ
\B単語の境界以外にマッチ

演算子

演算子意味
.改行文字を除いた任意の1文字にマッチする
?:キャプチャしません
??最短一致の?(できれば0回、できなければ1回の繰り返し)
+?最短一致の+
*?最短一致の*
?0回または1回以上のマッチ

条件文

if-elseのように使う

(?(式)yes|no)

例:

  • 「?<=」 戻り読み表明

abcdefghi内の「abc」が前に来る「def」にマッチする

使用例:

(?<=abc)def あるいは (?=defghi)def
  • 「?=」 先読み表明 abcdefghi内の「ghi」が後に来る「def」にマッチする

使用例:

def(?=ghi)

コメント

「#」を使用してコメントを記述できます。コメント有効にする場合、空白の非エスケープ文字の無視を意味する。RegexOptions.IngnorePatternWhitespaceの指定が必要

例:

Regex regex = new Regex(@"
^         #開始アンカー
(?=.*\d)  #最低でも1桁の数字が必要
",
 RegexOptions.IngnorePatternWhitespace);

正規表現で日本語と半角英数字の間にスペースを挿入する

テキスト中に全角文字と半角文字が混在していると、その間が詰まって見にくいことがある。そこで、ホームページなどでも、全角文字と半角文字の間に半角スペースを挿入することがよく行われる。いちいち手作業で半角スペースを挿入するのも面倒なので、今回は、PHP で自動的に半角スペースを挿入するプログラムを考えてみることにする。 考え方

今回は、全角平仮名と漢字、半角英数字のみを対象に考えてみることにする。 半角スペースを挿入する必要がある位置を■で示すと、

  1. 半角英数字が1つ以上並んでいる■日本語文字が1つ以上並んでいる
  2. 日本語文字が1つ以上並んでいる■半角英数字が1つ以上並んでいる

の2つのケースに限られる。 各々を正規表現であらわすと

  1. ([0-9A-Za-z]+)([ぁ-煕]+)
  2. ([ぁ-煕]+)([0-9A-Za-z]+)

となる。

改行を削除

\r\n は改行を示す

全角カタカナ

UTF-8

^[ァ-タダ-ヶ]*$

エスケープが必要な文字

\ * + ? . { } ( ) [ ] ^ $ - | /

GUID形式の文字列にマッチする.Net正規表現

(?i:{?(?<guid>([0-9A-Z]{8}(-?)[0-9A-Z]{4}\2[0-9A-Z]{4}\2[0-9A-Z]{4}\2[0-9A-Z]{12}))}?)

下記のような形式のGUIDをマッチできます。

{020cac21-6dcb-4d0e-ae79-86982cf3ad90}
{020cac216dcb4d0eae7986982cf3ad90}
020cac21-6dcb-4d0e-ae79-86982cf3ad90
020cac216dcb4d0eae7986982cf3ad90


iディレクトリで複数のポータルサイトにディレクトリ登録
  • URLを判定する正規表現:
     "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" -- 2011-05-19 (木) 16:30:23


(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:47:58 (558d)