Upload
tynice
View
37
Download
0
Embed Size (px)
DESCRIPTION
4D v11 SQL. 正規表現の手引き. 正規表現. 一定の規則性を有する文字列のパターンマッチング. メールアドレス (~@~.~) URL (http s ://~) パス+ファイル名+拡張子 (~¥~.~.~) HTML (~) etc. Match regex. @ , = , Position よりも的確にUnicodeを解析できる. フォーミュラ LAUNCH EXTERNAL PROCESS HTTP マクロ etc. Match regex. - PowerPoint PPT Presentation
Citation preview
4D v11 SQL4D v11 SQL正規表現の手引き正規表現の手引き
• メールアドレス メールアドレス (~@~.~)(~@~.~)• URL (httpURL (httpss://~)://~)• パス+ファイル名+拡張子 パス+ファイル名+拡張子 (~¥~.~.~)(~¥~.~.~)• HTML (<body>~</body>)HTML (<body>~</body>)• etc.etc.
• 一定の規則性を有する文字列のパターンマッチング一定の規則性を有する文字列のパターンマッチング
正規表現正規表現
Match regexMatch regex
• フォーミュラフォーミュラ• LAUNCH EXTERNAL PROCESSLAUNCH EXTERNAL PROCESS• HTTPHTTP• マクロマクロ• etc.etc.
• @@, , ==, , PositionPosition よりも的確によりも的確に UnicodeUnicode を解析できるを解析できる
Match regexMatch regex
パターンの評価のみパターンの評価のみ ...position_...position_ll, length_, length_ll抽出抽出 , , 分解分解 ...Positions_...Positions_alal, lengths_, lengths_alal
WhileWhile(Match regex(_,_,i,pos,len))(Match regex(_,_,i,pos,len))(Substring) (Substring) (i:=pos+len)(i:=pos+len)End while End while
正規表現の基本形正規表現の基本形
((\s*\s*)()(.*?.*?)()(\s*\s*)$)$
括弧で区切られたグループ。括弧で区切られたグループ。それぞれがパターンのサブマッチを表している。それぞれがパターンのサブマッチを表している。
正規表現の基本形正規表現の基本形
(\s*)((\s*)(.*?.*?)(\s*)$)(\s*)$
“ “ regular expressions ”regular expressions ”(“ ”)(“(“ ”)(“regular expressionsregular expressions”)(“ ”)”)(“ ”)
基本の正規表現基本の正規表現
..
\X\X
なんらかの文字。(コードポイント)なんらかの文字。(コードポイント)CR, LF, CR+LFCR, LF, CR+LF はカウントしない。はカウントしない。
文字。(書記素クラスタ)文字。(書記素クラスタ)組み合わせ文字組み合わせ文字 , , サロゲート等サロゲート等。。
グラフィームグラフィーム
基本の正規表現基本の正規表現
** 00 個以上の意。個以上の意。*? *? は控えめにマッチする。は控えめにマッチする。
++ 11 個以上の意。個以上の意。+? +? は控えめにマッチする。は控えめにマッチする。
基本の正規表現基本の正規表現
^̂ 入力の冒頭。入力の冒頭。毎行の冒頭はカウントしない。毎行の冒頭はカウントしない。
$$ 入力の終末。入力の終末。毎行の終末はカウントしない。毎行の終末はカウントしない。
基本の正規表現基本の正規表現
\s\s 空白文字。(タブ空白文字。(タブ , , 改行など)改行など)意味のないデータを除外するときに。意味のないデータを除外するときに。
空白以外。空白以外。意味のあるデータを取り出すときに。意味のあるデータを取り出すときに。\S\S
数と値の範囲数と値の範囲
[_][_] 式。(候補)式。(候補)範囲はマイナスで指定。範囲はマイナスで指定。ロケールロケール ......
{_{_}}
数。数。範囲はカンマで指定。範囲はカンマで指定。
フラグの設定フラグの設定
(?m(?m:...:...))
(?s(?s:...:...))
MULTILINEMULTILINECR, LF, CRLF CR, LF, CRLF をを .. でマッチする。でマッチする。
DOTALLDOTALL^, $ ^, $ を毎行マッチする。を毎行マッチする。
(?i(?i:...:...)) CASE_INSENSITIVECASE_INSENSITIVE大文字と小文字を区別しない。大文字と小文字を区別しない。
例例
(?i:[0-9a-f]{16})(?i:[0-9a-f]{16})
大文字と小文字を区別しないで、大文字と小文字を区別しないで、00 からから 99 またはまたは AA からから ZZ を合計を合計 1616 文字。文字。
置換の正規表現置換の正規表現
(\n)(\n) nn 番目のグループで置換する。番目のグループで置換する。
例例
((““?)(.*?)(?)(.*?)(\1\1))
開く引用符があれば、閉じるほうも必要。開く引用符があれば、閉じるほうも必要。なければ両方いらない。なければ両方いらない。
UnicodeUnicode 特有の正規表現特有の正規表現
\\x{_}x{_}
\p{_}\p{_}
Character codeCharacter code1616 進数進数 66 桁まで指定できる桁まで指定できる
プロパティプロパティ特定の属性を有する文字特定の属性を有する文字
まとめまとめ
正規表現は正規表現は UnicodeUnicode を解析するツールを解析するツール@, =, Position@, =, Position よりもよりも Match regexMatch regex全体のパターンマッチングは全体のパターンマッチングは LONGINTLONGINT抽出抽出 , , 分解は分解は ARRAY LONGINTARRAY LONGINT++WhileWhile行毎に処理を区切るならフラグを設定行毎に処理を区切るならフラグを設定