#author("2023-10-08T10:36:13+08:00","default:Admin","Admin")
[[+C#+文字列処理]]
#author("2023-10-08T10:36:49+08:00","default:Admin","Admin")
[[FrontPage]]

#contents

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

*エスケープ文字 [#ye88aed4]
|エスケープ文字|意味|
|\s|空白・スペース|
|\w|a-zを表す|
|\d|0-9を表す|
|\b|単語の境界にマッチ|
|\B|単語の境界以外にマッチ|

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

*条件文 [#b25bfc7c]
if-elseのように使う
 (?(式)yes|no)

例:~
- 「?<=」 戻り読み表明

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

使用例:

 (?<=abc)def あるいは (?=defghi)def



** 含某个单词 [#xa2da225]

 (?=abcd)

「?=」 先読み表明
 
abcdefghi内の「ghi」が後に来る「def」にマッチする

使用例:

 def(?=ghi)


** 不包含某个单词 [#d403bd49]

 (?!abcd)

把那些不包含robots.txt字符串的条目给找出来(只要Url中包含robots.txt的都给过滤掉)
 ^(?!.*?robots).*$
*コメント [#u076db5e]
「#」を使用してコメントを記述できます。コメント有効にする場合、空白の非エスケープ文字の無視を意味する。RegexOptions.IngnorePatternWhitespaceの指定が必要

例:
#codeprettify{{
Regex regex = new Regex(@"
^         #開始アンカー
(?=.*\d)  #最低でも1桁の数字が必要
",
 RegexOptions.IngnorePatternWhitespace);
}}
*正規表現で日本語と半角英数字の間にスペースを挿入する [#ucb0ff95]
テキスト中に全角文字と半角文字が混在していると、その間が詰まって見にくいことがある。そこで、ホームページなどでも、全角文字と半角文字の間に半角スペースを挿入することがよく行われる。いちいち手作業で半角スペースを挿入するのも面倒なので、今回は、PHP で自動的に半角スペースを挿入するプログラムを考えてみることにする。
考え方

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

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

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

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

となる。~

*改行を削除 [#e4905a24]

 \r\n は改行を示す

*全角カタカナ [#s1328d5e]
UTF-8~

^[ァ-タダ-ヶ]*$

*エスケープが必要な文字 [#db647b01]
 \ * + ? . { } ( ) [ ] ^ $ - | /

*GUID形式の文字列にマッチする.Net正規表現 [#c5c2ae5a]
 (?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

#hr();
- URLを判定する正規表現:&br; "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" --  &new{2011-05-19 (木) 16:30:23};

#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS