JP4897454B2 - 正規表現生成装置及び正規表現生成方法及び正規表現生成プログラム - Google Patents
正規表現生成装置及び正規表現生成方法及び正規表現生成プログラム Download PDFInfo
- Publication number
- JP4897454B2 JP4897454B2 JP2006329679A JP2006329679A JP4897454B2 JP 4897454 B2 JP4897454 B2 JP 4897454B2 JP 2006329679 A JP2006329679 A JP 2006329679A JP 2006329679 A JP2006329679 A JP 2006329679A JP 4897454 B2 JP4897454 B2 JP 4897454B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- attribute
- regular expression
- range condition
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000014509 gene expression Effects 0.000 title claims description 688
- 238000000034 method Methods 0.000 title claims description 135
- 238000012545 processing Methods 0.000 claims description 109
- 230000008569 process Effects 0.000 claims description 60
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000010586 diagram Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 4
- 230000007717 exclusion Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000002250 progressing effect Effects 0.000 description 2
- OHVLMTFVQDZYHP-UHFFFAOYSA-N 1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-2-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]ethanone Chemical compound N1N=NC=2CN(CCC=21)C(CN1CCN(CC1)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)=O OHVLMTFVQDZYHP-UHFFFAOYSA-N 0.000 description 1
- HMUNWXXNJPVALC-UHFFFAOYSA-N 1-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]piperazin-1-yl]-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)N1CCN(CC1)C(CN1CC2=C(CC1)NN=N2)=O HMUNWXXNJPVALC-UHFFFAOYSA-N 0.000 description 1
- VZSRBBMJRBPUNF-UHFFFAOYSA-N 2-(2,3-dihydro-1H-inden-2-ylamino)-N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]pyrimidine-5-carboxamide Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C(=O)NCCC(N1CC2=C(CC1)NN=N2)=O VZSRBBMJRBPUNF-UHFFFAOYSA-N 0.000 description 1
- LDXJRKWFNNFDSA-UHFFFAOYSA-N 2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]ethanone Chemical compound C1CN(CC2=NNN=C21)CC(=O)N3CCN(CC3)C4=CN=C(N=C4)NCC5=CC(=CC=C5)OC(F)(F)F LDXJRKWFNNFDSA-UHFFFAOYSA-N 0.000 description 1
- WZFUQSJFWNHZHM-UHFFFAOYSA-N 2-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]piperazin-1-yl]-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)N1CCN(CC1)CC(=O)N1CC2=C(CC1)NN=N2 WZFUQSJFWNHZHM-UHFFFAOYSA-N 0.000 description 1
- IHCCLXNEEPMSIO-UHFFFAOYSA-N 2-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]piperidin-1-yl]-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C1CCN(CC1)CC(=O)N1CC2=C(CC1)NN=N2 IHCCLXNEEPMSIO-UHFFFAOYSA-N 0.000 description 1
- MKYBYDHXWVHEJW-UHFFFAOYSA-N N-[1-oxo-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propan-2-yl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(C(C)NC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 MKYBYDHXWVHEJW-UHFFFAOYSA-N 0.000 description 1
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 1
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 1
- 101100425598 Solanum lycopersicum tm-1 gene Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
(1)ログの形式は意識せず、収集してきたログをそのままの形式で記憶媒体に保存する。
(2)ログの書式を意識した検索条件により検索する。
(1)ログからの属性抽出などを行わないため、ありとあらゆる形式のログの保存が可能。
(2)ログの書式を意識した検索条件を正規表現により指定することにより、検索対象の属性などを柔軟に指定することが可能。
“[^0−9](2006/([7−8]/([1−9]|[1−2][0−9]|3[0−1])|9/([1−9]|[1−2][0−9]|30)|10/([1−9]|1[0−5]))[^0−9]”
などと記述することができる。このような正規表現は、正規表現の知識の乏しい者には記述が困難であると同時に、正規表現を熟知している者にとっても正確に記述するためには試行錯誤を要するものである。
“(^|¥n)([^,]*,){3}[^,]*ファイル”
のように記述することができる。一口にCSV形式といっても、フィールドがさらにダブルクォーテーション「”」で囲まれているものもあるなど、様々なパターンを網羅しようとすると正規表現がさらに複雑になり、検索条件の記述が困難となる。また、特定のフィールドに上記のような特定の範囲に含まれる日付を検索するための正規表現も複雑なものとなる。
属性値の下限値と上限値と書式とを示す属性範囲条件データを入力装置から入力する属性範囲条件入力部と、
前記属性範囲条件入力部により入力された属性範囲条件データが示す書式に基づいて、前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値以上の属性値であって、最下位桁から少なくとも1桁が当該桁の最大値である第1の値と、前記属性範囲条件入力部により入力された属性範囲条件データが示す上限値以下の属性値であって、最下位桁から少なくとも1桁が当該桁の最小値である第2の値とを、処理装置で演算する演算部と、
前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値と上限値と、前記演算部により演算された第1の値と第2の値とを、記憶装置に記憶する属性値記憶部と、
前記属性値記憶部により記憶された下限値から第1の値までの属性値を正規表現で表す下位領域データと、前記属性値記憶部により記憶された第2の値から上限値までの属性値を正規表現で表す上位領域データとを、処理装置で生成するとともに、前記属性値記憶部により記憶された第1の値と第2の値との間に属性値が存在する場合には当該属性値を正規表現で表す中位領域データを処理装置で生成する正規表現生成部と、
前記正規表現生成部により生成された下位領域データと上位領域データと中位領域データとを処理装置で結合して、前記属性値記憶部により記憶された下限値から上限値までの属性値を正規表現で表す正規表現データを生成する正規表現結合部とを備えることを特徴とする。
(1)<通常の文字>は、通常の文字を照合する。
(2)¥<特殊文字>は、特殊文字(「|」、「?」、「*」、「+」「¥」、「^」など)を照合する。
(3)[abc...]は、文字abc...中の任意の1文字を照合する。
(4)[a−z]は、文字コードがaからzまでの範囲にある任意の1文字を照合する。
(5)[^abc...]は、文字abc...以外の任意の1文字を照合する。
(6)[^a−z]は、文字コードがaからzまでの範囲にはない任意の1文字を照合する。
(7)^は、行の先頭を照合する。
(8)$は、行の末尾を照合する。
(9)<正規表現>?は、<正規表現>が0回又は1回現れるものを照合する。
(10)<正規表現>*は、<正規表現>が0回又は任意の回数繰り返されるものを照合する。
(11)<正規表現>+は、<正規表現>が1回以上繰り返されるものを照合する。
(12)<正規表現>{n}は、<正規表現>がn回繰り返されるものを照合する。
(13)<正規表現>{n,}は、<正規表現>がn回以上繰り返されるものを照合する。
(14)<正規表現>{,m}は、<正規表現>が0回以上m回以下繰り返されるものを照合する。
(15)<正規表現>{n,m}は、<正規表現>がn回以上m回以下繰り返されるものを照合する。
(16)<正規表現1>|<正規表現2>は、<正規表現1>又は<正規表現2>を照合する。
(17)<正規表現1><正規表現2>は、前半部分が<正規表現1>で後半部分が<正規表現2>であるものを照合する。
図1は、本実施の形態に係る正規表現生成装置100の構成を示すブロック図である。
“12[3−9]|1[3−9][0−9]”(123〜199の正規表現)、
上位領域データは、
“7[0−5][0−9][0−9]|76[0−4][0−9]|765[0−4]”(7000〜7654の正規表現)
などとなる。また、正規表現生成部104は、属性値記憶部103により記憶された第1の値と第2の値との間に属性値が存在する場合には、当該属性値を正規表現で表す中位領域データ(以下、単に「正規表現」、又は「中位領域の正規表現」などという場合がある)を処理装置152で生成する。上記の例のように、第1の値が199、第2の値が7000となる場合、中位領域データは、
“[2−9][0−9][0−9]|[1−6][0−9][0−9][0−9]”(200〜6999の正規表現)
などとなる。
“(12[3−9]|1[3−9][0−9])|([2−9][0−9][0−9]|[1−6][0−9][0−9][0−9])|(7[0−5][0−9][0−9]|76[0−4][0−9]|765[0−4])”
などとなる。
属性範囲条件=(0,255,%3d)
と表記して入力する。ここでは、一例として、
属性の下限値=0
属性の上限値=255
属性の書式(桁数とデータ型)=「(最大)3桁の整数値」
としている。この例では、属性の書式を表すのに、C言語におけるprintfなどの書式付き出力関数の書式指定の表記法を流用しているが、同等の条件を指定することが可能であれば、同じ表記法である必要はない。また、同様の条件を入力することができるのであれば、その入力方法は問わない。
正規表現=“[^0−9]([0−9]|[1−9][0−9]|1[0−9][0−9]|2[0−4][0−9]|25[0−5])[^0−9]”
などとして出力される。なお、上記の属性範囲条件を構成する項目のうち、全てが揃っている必要はない。例えば、下限値がなければ、下限値を属性値のとりうる値の最小値として扱ってもよい(上記の例では、下限値=0となる)。また、例えば、上限値がなければ、上限値を属性値のとりうる値の最大値として扱ってもよい(上記の例では、上限値=∞となる)。また、例えば、属性の書式が整数値であることが示されていなければ、属性のデータ型が文字列であると推定してもよいし、下限値と上限値が整数値であることから属性のデータ型が整数値であると推定してもよい。
下限値A:AnAn−1...A2A1
上限値B:BnBn−1...B2B1
ここで、添え字が大きいほど上位の桁とする。
属性値を構成する属性要素Ai、Bi(1≦i≦n)は、それぞれ1個の数字や文字で、その値域をv1≦Ai、Bi≦vqとする。ただし、最上位桁のみv2≦An、Bn≦vqとする。ここでは簡単のために、最上位桁を除く全ての桁の値域は同じであるとする。また、(vj)kで「k桁目の値がvj」であることを表すものとする。さらに、この属性値の大小関係は以下の基準で決定されるものとする。
An=Bn,An−1=Bn−1,...,Ak+1=Bk+1(1≦k≦n)のとき、Bk>AkならばB>A
Ai+1と記述してAiの値を1大きくすることとし、Ai=vjの場合Ai+1=vj+1とする。ただし、Ai=vqの場合はAi+1=v1とし、さらにAi+1+1とする。同様に、Ai−1と記述してAiの値を1小さくすることとし、Ai=vjの場合Ai−1=vj−1とする。ただし、Ai=v1の場合はAi−1=vqとし、さらにAi+1−1とする。属性値Aを1大きくすることをA+1と記述し、A1+1を意味するものとする。同様に、属性値Aを1小さくすることをA−1と記述し、A1−1を意味するものとする。
正規表現:“AnAn−1...A2A1”
中位領域(下限値L):An...Ak+1(Ak+1)(v1)k−1...(v1)1
中位領域(上限値U):Bn...Bk+1(Bk−1)(vq)k−1...(vq)1
ただし、An=Bn,An−1=Bn−1,...,Ak+1=Bk+1(1≦k≦n)
下位領域(下限値A):AnAn−1...A2A1
下位領域(上限値):An...Ak(vq)k−1...(vq)1
上位領域(下限値):Bn...Bk(v1)k−1...(v1)1
上位領域(上限値B):BnBn−1...B2B1
中位領域の正規表現:“[(Ak+1)−(Bk−1)][v1−vq]{k−1}”
ここで、Bk−Ak=1の場合、(Ak+1)>(Bk−1)となるが、この場合は中位領域の正規表現を出力しないものとする。それ以外は同様に処理することができる。
下限値:AkAk−1...A1
上限値:(vj)k(vq)k−1...(vq)1(ただし、vj≧Ak)
下限値:AkAk−1...A1
上限値:Ak(vq)k−1...(vq)1
そして、ステップS104において、正規表現生成部104が生成する下位領域の正規表現は以下の通りとなる。k+1桁目からn桁目までの値は、ステップS106において、共通部分として処理できるため、ここでも省略している。
下位領域の正規表現:“Ak...A2[A1−vq]|Ak...A3[(A2+1)−vq][v1−vq]|...|Ak[(Ak−1+1)−vq][v1−vq]{k−2}”
下限値:(vj)k(v1)k−1...(v1)1(ただし、vj≦Bk)
上限値:BkBk−1...B1
下限値:Bk(v1)k−1...(v1)1
上限値:BkBk−1...B1
そして、ステップS105において、正規表現生成部104が生成する上位領域の正規表現は以下の通りとなる。k+1桁目からn桁目までの値は、ステップS106において、共通部分として処理できるため、ここでも省略している。
上位領域の正規表現:“Bk...B2[v1−B1]|Bk...B3[v1−(B2−1)][v1−vq]|...|Bk[v1−(Bk−1−1)][v1−vq]{k−2}”
“An...Ak+1(<下位領域の正規表現>|<中位領域の正規表現>|<上位領域の正規表現>)”
また、中位領域がない場合に生成される正規表現は以下のような形式となる。
“An...Ak+1(<下位領域の正規表現>|<上位領域の正規表現>)”
下限値A:AnAn−1...A2A1
上限値B:BmBm−1...B2B1(m>n)
属性値の桁数が異なるとき、m>nならばB>Aである。又は、下限値Aのn+1桁目からm桁目までは、暗黙の値としてv1があるものと考えることもできる。
下位領域:AnAn−1...A2A1〜(vq)n(vq)n−1...(vq)2(vq)1
中位領域:なし
上位領域:(v1)m(v1)m−1...(v1)2(v1)1〜BmBm−1...B2B1
以降の処理の流れについては、図4、図6、図7に示した処理の流れと同じである。
中位領域:(An+1)(v1)n−1...(v1)2(v1)1〜(Bm−1)(vq)m−1...(vq)2(vq)1
このとき、下位領域と上位領域は以下のようになる。
下位領域:AnAn−1...A2A1〜An(vq)n−1...(vq)2(vq)1
上位領域:Bm(v1)m−1...(v1)2(v1)1〜BmBm−1...B2B1
そして、中位領域の正規表現は以下のようになる。
中位領域の正規表現:“[(An+1)−vq][v1−vq]{n−1}|[v2−(Bm−1)][v1−vq]{m−1}”
下位領域:AnAn−1...A2A1〜(vq)n(vq)n−1...(vq)2(vq)1
中位領域:(v2)n+1(v1)n...(v1)2(v1)1〜(vq)m−1(vq)m−2...(vq)2(vq)1
上位領域:(v2)m(v1)m−1...(v1)2(v1)1〜BmBm−1...B2B1
そして、中位領域の正規表現は以下のようになる。
中位領域の正規表現:“[v2−vq][v1−vq]{n,m−2}”
下位領域:123〜199
中位領域:200〜199(正規表現は生成されない)
上位領域:200〜246
正規表現:“(12[3−9]|1[3−9][0−9])|(24[0−6]|2[0−3][0−9])”
下位領域:2345〜2999
中位領域:3000〜6999
上位領域:7000〜7654
正規表現:“(234[5−9]|23[5−9][0−9]|2[4−9][0−9]{2})|[3−6][0−9]{3}|(765[0−4]|76[0−4][0−9]|7[0−5][0−9]{2})”
下位領域:7531〜9999
中位領域:10000〜17999
上位領域:18000〜18939
正規表現:“(753[1−9]|75[4−9][0−9])|7[6−9][0−9]{2}|[89][0−9]{3})|1[0−7][0−9]{3}|(1893[0−9]|189[0−2][0−9]|18[0−8][0−9]{2})”
あるいは、
下位領域:7531〜7999
中位領域:8000〜17999
上位領域:18000〜18939
正規表現:“(753[1−9]|75[4−9][0−9])|7[6−9][0−9]{2})|([8−9][0−9]{3}|1[0−7][0−9]{3})|(1893[0−9]|189[0−2][0−9]|18[0−8][0−9]{2})”
下位領域:304〜999
中位領域:1000〜99999
上位領域:100000〜765432
正規表現:“(30[4−9]|3[1−9][0−9]|[4−9][0−9]{2})|[1−9][0−9]{3,4}|(76543[0−2]|7654[0−2][0−9]|765[0−3][0−9]{2}|76[0−4][0−9]{3}|7[0−5][0−9]{4}|[1−6][0−9]{5})”
正規表現:“[^1−9]0*(<下位領域の正規表現>|<中位領域の正規表現>|<上位領域の正規表現>)[^0−9]”
正規表現:“[^1−9]0{t−m,0}(0{m−n}<下位領域の正規表現>|<中位領域の正規表現>|<上位領域の正規表現>)[^0−9]”
ここで、中位領域の正規表現は以下のようになる。
中位領域の正規表現:“0{t−n−1}[1−9][0−9]{n}|0{t−n−2}[1−9][0−9]{n+1}|...|0{t−m−1}[1−9][0−9]{m}”
下限値A:−AnAn−1...A2A1
上限値B:BmBm−1...B2B1
という属性範囲条件が与えられた場合は、
正の下限値:0
正の上限値:BmBm−1...B2B1
及び、
負の下限値:−AnAn−1...A2A1
負の上限値:−1
として個別に正規表現を生成し、正規表現結合部105が最後に以下のように結合すればよい。
正規表現:“<0〜Bの範囲の正規表現>|(−<1〜Aの絶対値の範囲の正規表現>)”
下限値A:An...A1
上限値B´:(vq)n...(vq)1
その上で、正規表現結合部105は、n桁目より上位の属性値の正規表現“[v2−vq][v1−vq]{n,}”を追加する。生成される正規表現は以下の形式になる。
正規表現:“<A〜B´の範囲の正規表現>|[v2−vq][v1−vq]{n,}”
正規表現:“<0〜Bの範囲の正規表現>|(−[1−9][0−9]*)”
(1)選択を使用する場合
修正前:“vivj[vk−vl]”
修正後:“(vivj[vk−vl]|wiwj[wk−wl]|...)”
(2)文字クラスを使用する場合
修正前:“vivj[vk−vl]”
修正後:“[viwi...][vjwj...][vk−vlwk−wl...]”
修正前:“AmAm−1...An+1[v1−vq]{n}”
修正後:“AmAm−1...An−t+4,An−t+3...An+1[v1−vq]{t}(,[v1−vq]{3}){s}”
ここで、sはn/3の商、tはn/3の余剰とする。
このように、正規表現結合部105は、n+1桁目以上については、n−t+3×i桁目とn−t+3×i+1桁目との間にカンマを挿入するとよい(iは自然数)。
本実施の形態について、主に実施の形態1との差異を説明する。
本実施の形態について、主に実施の形態1との差異を説明する。
下限値A:A1A2...An−1An
上限値B:B1B2...Bm−1Bm
Ai、Bj(1≦i≦n、1≦j≦m)は、それぞれ1個の数字や文字で、その値域をv1≦Ai、Bj≦vqとする。本実施の形態における属性値の大小関係は、次の順序で決まるものとする。
(1)A1=B1,A2=B2,...,Ak−1=Bk−1(1≦k≦n又はm)のとき、Bk>AkならばB>A
(2)A1=B1,A2=B2,...,An=Bnでかつm>nならばB>A
Ai+1と記述してAiの値を1大きくすることとし、Ai=vjの場合Ai+1=vj+1とする。ただし、Ai=vqの場合はAi+1=v1とし、さらにAi+1+1とする。同様に、Ai−1と記述してAiの値を1小さくすることとし、Ai=vjの場合Ai−1=vj−1とする。ただし、Ai=v1の場合はAi−1=vqとし、さらにAi+1−1とする。属性値Aを1大きくすることをA+1と記述し、An+1を意味するものとする。同様に、属性値Aを1小さくすることをA−1と記述し、An−1と意味するものとする。
正規表現:“A1A2...An−1An”
下限値A´:A1A2...Ar−1Ar
上限値B´:B1B2...Br−1Br
ここでrはnとmの値の小さい方とする。中位領域を求める処理の流れを図10に示す。図10は、図5のステップS201を「i=1」とし、ステップS204、S206を「i=i+1」とし、ステップS207を「i≦r?」としたものである。
下位領域:A1A2...Ar−1Ar〜A1...Ak(vq)k−1...(vq)r
中位領域:A1...Ak−1(Ak+1)(v1)k+1...(v1)r〜B1...Bk−1(Bk−1)(vq)k+1...(vq)r
上位領域:B1...Bk(v1)k−1...(v1)r〜B1B2...Br−1Br
ただし、A1=B1,...,Ak−1=Bk−1(1≦k≦r)
このとき、属性値記憶部103は下限値A´、上限値B´、第1の値(L−1)、第2の値(U+1)をRAM914に記憶している。
下位領域:A1...ArAr+1...An〜A1...Ak(vq)k−1...(vq)r(vq)r+1...(vq)n
一方、n<mの場合は、演算部102は、上位領域にr+1桁目からm桁目までを追加する。
上位領域:B1...Bk(v1)k−1...(v1)r(v1)r+1...(v1)m〜B1...BrBr+1...Bm
中位領域の正規表現:“[(Ak+1)−(Bk−1)]”
ここで、Bk−Ak=1の場合、(Ak+1)>(Bk−1)となるが、この場合は中位領域の正規表現を出力しないものとする。それ以外は同様に処理することができる。
下限値:AkAk−1...An
上限値:(vj)k(vq)k−1...(vq)n(ただし、vj≧Ak)
下限値:AkAk+1...An
上限値:Ak(vq)k+1...(vq)n
そして、ステップS104において、正規表現生成部104が生成する下位領域の正規表現は以下の通りとなる。1桁目からk−1桁目までの値は、ステップS106において、共通部分として処理できるため、ここでも省略している。
下位領域の正規表現:“AkAk+1...An−1[An−vq]|AkAk+1...An−2[(An−1+1)−vq]|...|Ak[(Ak+1+1)−vq]”
下限値:(vj)k(v1)k+1...(v1)m(ただし、vj≦Bk)
上限値:BkBk+1...Bm
下限値:Bk(v1)k+1...(v1)m
上限値:BkBk+1...Bm
そして、ステップS105において、正規表現生成部104が生成する上位領域の正規表現は以下の通りとなる。1桁目からk−1桁目までの値は、ステップS106において、共通部分として処理できるため、ここでも省略している。
上位領域の正規表現:“BkBk+1...Bm−1[v1−(Bm−1)]|BkBk+1...Bm−2[v1−(Bm−1−1)]|...|Bk[v1−(Bk+1−1)]”
“A1...Ak−1(<下位領域の正規表現>|<中位領域の正規表現>|<上位領域の正規表現>)”
また、中位領域がない場合に生成される正規表現は以下のような形式となる。
“A1...Ak−1(<下位領域の正規表現>|<上位領域の正規表現>)”
下位領域:「end」〜「ezz」
中位領域:「faa」〜「rzz」
上位領域:「saaaa」〜「start」
正規表現:“(en[d−z]|e[o−z])|[f−r]|(star[a−s]|sta[a−q]|s[a−s])”
下位領域:0.00321〜0.09999
中位領域:0.100〜0.799
上位領域:0.800〜0.876
正規表現:“0.((0032[1−9]|003[3−9]|00[4−9]|0[1−9])|[1−7]|(87[0−5]|8[0−6]))”
下限値A:A1...An
上限値B´:(vq)1...(vq)n
その上で、正規表現結合部105は、(vq)1...(vq)n...の正規表現“vq{n}[v1−vq]*[v2−vq]”を追加する。生成される正規表現は以下の形式になる。
正規表現:“<A〜B´の範囲の正規表現>|vq{n}[v1−vq]*[v2−vq]”
下限値A´:(v1)1
上限値B:B1...Bm
本実施の形態について、主に実施の形態1との差異を説明する。
下限値A:A1<d1>A2<d2>...<dn−1>An
上限値B:B1<d1>B2<d2>...<dn−1>Bn
ここで、Ai、Bi(1≦i≦n)は各階層の1桁以上の属性値を表し、その値域はVi min≦Ai、Bi≦Vi maxとする。
下位領域:A1<d1>A2<d2>...<dn−1>An〜A1<d1>V2 max<d2>...<dn−1>Vn max
中位領域:(A1+1)<d1>V2 min<d2>...<dn−1>Vn min〜(B1−1)<d1>V2 max<d2>...<dn−1>Vn max
上位領域:B1<d1>V2 min<d2>...<dn−1>Vn min〜B1<d1>B2<d2>...<dn−1>Bn
中位領域の正規表現:“<(A1+1)〜(B1−1)の正規表現><d1><V2 min〜V2 maxの正規表現><d2>...<dn−1><Vn min〜Vn maxの正規表現>”
正規表現生成部104は、各階層の正規表現の生成方法として、それぞれの属性値の形式に従って、実施の形態1や3に示したものと同様の手順を用いることができる。つまり、正規表現生成部104は、各階層について、演算部102が行う処理と同様に、下位、中位、上位領域に値の範囲を分割し、各領域に関して正規表現を生成し、正規表現結合部105が行う処理と同様に、生成した正規表現を以下の形式で書き出す。
正規表現:“(<i階層の下位領域の正規表現>|<i階層の中位領域の正規表現>|<i階層の上位領域の正規表現>)”
これにより、正規表現生成部104は、各階層を1桁として扱っていた中位領域の正規表現を、各階層もそれぞれに対応する正規表現を含んだ正規表現に変換することができる。
下位領域:A1<d1>A2<d2>...<dn−1>An〜A1<d1>A2<d2>V3 max<d3>...<dn−1>Vn max
中位領域:A1<d1>(A2+1)<d2>V3 min<d3>...<dn−1>Vn min〜A1<d1>V2 max<d2>...<dn−1>Vn max
続いて、正規表現生成部104は、ステップS103と同様の手順で中位領域の正規表現を生成するとともに、下位領域の次の階層以下をさらに分割する。このようにして、下位、中位領域への分割と中位領域の正規表現の生成とを最下位の階層まで繰り返すことにより、正規表現生成部104は、各階層を1桁として扱っていた下位領域の正規表現を、各階層もそれぞれに対応する正規表現を含んだ正規表現に変換することができる。
中位領域:B1<d1>V2 min<d2>...<dn−1>Vn min〜B1<d1>(B2−1)<d2>V3 max<d3>...<dn−1>Vn max
上位領域:B1<d1>B2<d2>V3 min<d3>...<dn−1>Vn min〜B1<d1>B2<d2>...<dn−1>Bn
続いて、正規表現生成部104は、ステップS103と同様の手順で中位領域の正規表現を生成するとともに、上位領域の次の階層以下を同様に分割する。このようにして、中位、上位領域への分割と中位領域の正規表現の生成とを最下位の階層まで繰り返すことにより、正規表現生成部104は、各階層を1桁として扱っていた上位領域の正規表現を、各階層もそれぞれに対応する正規表現を含んだ正規表現に変換することができる。
下限値:A1<d1>...<dk−2>Ak−1<dk−1>Vk min<dk>...<dn−1>Vn min
上限値:B1<d1>...<dk−2>Bk−1<dk−1>Vk max<dk>...<dn−1>Vn max
そして、正規表現生成部104は、k−1桁目以下に対する正規表現を、以下のようにして生成することができる。
正規表現:“[Ak−1−Bk−1]<dk−1><Vk min〜Vk maxの正規表現><dk>...<dn−1><Vn min〜Vn maxの正規表現>”
“<下位領域の正規表現>|<中位領域の正規表現>|<上位領域の正規表現>”
中位領域がない場合に生成される正規表現は以下のような形式となる。
“<下位領域の正規表現>|<上位領域の正規表現>”
下位領域:1996/11/15〜1996/12/31
中位領域:1997/1/1〜2005/12/31
上位領域:2006/1/1〜2006/9/20
中位領域の正規表現:“<1997〜2005の正規表現>/<1〜12の正規表現>/<1〜31の正規表現>“
下位領域:1996/11/15〜1996/11/31
中位領域:1996/12/1〜1996/12/31
これより、元の属性範囲の下位領域の正規表現は、以下の通り生成される。
下位領域(1996/11/15〜1996/12/31)の正規表現:“1996/(11/<15〜31の正規表現>|12/<1〜31の正規表現>)”
中位領域:2006/1/1〜2006/8/31
上位領域:2006/9/1〜2006/9/20
これより、元の属性範囲の上位領域の正規表現は、以下の通り生成される。
上位領域(2006/1/1〜2006/9/20)の正規表現:“2006(<1〜8の正規表現>/<1〜31の正規表現>|9/<1〜20の正規表現>)”
正規表現:“(1996/(11/<15〜31の正規表現>|12/<1〜31の正規表現>))|(<1997〜2005の正規表現>/<1〜12の正規表現>/<1〜31の正規表現>)|(2006(<1〜8の正規表現>/<1〜31の正規表現>|9/<1〜20の正規表現>))”
これを展開すると、次のような正規表現が得られる。
正規表現:“(1996/(11/(1[5−9]|2[0−9]|3[0−1])|12/([0−9]|[1−2][0−9]|3[0−1])))|((199[7−9]|200[0−5])/([1−9]|1[0−2])/([0−9]|[1−2][0−9]|3[0−1]))|(2006/([1−8]/([0−9]|[1−2][0−9]|3[0−1])|9/([1−9]|1[0−9]|20)))”
修正前:“<1〜12の正規表現>/<1〜31の正規表現>”
修正後:“(1|3|5|7|8|10|12)/<1〜31の範囲の正規表現>|(4|6|9|11)/<1〜30の範囲の正規表現>|2/<1〜28の範囲の正規表現>”
上記の条件を満たす日付を表す文字列を照合するための正規表現の生成手順を示す。上記の条件は、次の点でこれまで説明した属性範囲条件と異なる。
(1)「月」と「曜日」の2階層に範囲が設定されている。先に示した日付の属性範囲条件の例は、「年」と「月」に範囲が設定されているが、値としての実体は連続値である。
(2)第3階層の「日」に明示的な範囲条件が設定されていない。
(3)「日」と「曜日」は連動して変化する。厳密には上下の階層関係にない値である。
ここで、簡単のためにここでの日付の属性値は、左から順に「年」「月」「日」「曜日」が並んでおり、「年」「月」「日」間の区切り文字はスラッシュ「/」、「日」と「曜日」間の区切り文字は空白文字(厳密には、全角空白文字又は半角空白文字いずれか一方)であるとする。また、「曜日」の値域は、V4 min=“SUN”、V4 max=“SAT”という値を取るものとする。この属性範囲条件の第3階層は明示的に設定されていないが、V3 min〜V3 maxの値をとると考えてよい。このような属性範囲条件は以下のように考えられる。
属性範囲条件1:2006/9/1〜2006/12/31
属性範囲条件2:MON〜FRI
正規表現:“(2006/(9|1[0−2])/([1−9]|[12][0−9]|3[01])) (MON|TUE|WED|THU|FRI)”
下位領域:8:45:00〜8:59:59
中位領域:9:00:00〜16:59:59
上位領域:17:00:00〜17:15:00
正規表現:“(8:(4[5−9]|5[0−9]):(0[0−9]|[1−4][0−9]|5[0−9])|(9|1[0−6]):([0−5][0−9]):(0[0−9]|[1−4][0−9]|5[0−9])|17:((0[0−9]|1[0−4]):(0[0−9]|[1−4][0−9]|5[0−9])|15:00))”
このような属性範囲条件は以下のように考えられる。
属性範囲条件1:8:45:00AM〜11:59:59AM
属性範囲条件2:0:00:00PM〜5:15:00PM
このように午前と午後とで個別に正規表現を生成した後で、正規表現結合部105が以下の通り正規表現を結合すればよい。
正規表現:“<属性範囲条件1の正規表現>|<属性範囲条件2の正規表現>”
下位領域:10.0.1.1〜10.0.255.255
中位領域:10.1.0.0〜10.1.255.255
上位領域:10.2.0.0〜10.2.100.254
下位領域:10.0.1.1〜10.0.1.255
中位領域:10.0.2.0〜10.0.255.255
中位領域:10.2.0.0〜10.2.0.99.255
上位領域:10.2.100.0〜10.2.100.254
正規表現:“10¥.((0¥.(1¥.([1−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−5]|2[0−4][0−9]))|([2−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−5]|2[0−4][0−9]))¥.([0−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−5]|2[0−4][0−9]))))|(1¥.([0−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−5]|2[0−4][0−9]))¥.([0−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−5]|2[0−4][0−9])))|(2¥.(([0−9]|[1−9][0−9])¥.([0−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−5]|2[0−4][0−9]))|100¥.([0−9]|[1−9][0−9]|1[0−9][0−9]|(25[0−4]|2[0−4][0−9])))))”
下位領域:1.4142〜1.9999
中位領域:2.00〜5.99
上位領域:6.00〜6.63
正規表現:“(1¥.((414[2−9]|41[5−9]|4[2−9])|([5−9])))|([2−5]¥.[0−9])|(6¥.(([0−5])|(6[0−3])))”
本実施の形態について、主に実施の形態1との差異を説明する。
<ヘッダフィールド名>:<属性値><改行(CRLF)>
<ヘッダフィールド名>:<属性値><改行(CRLF)>
<半角空白又はタブ><属性値><改行(CRLF)>
・・・・・・
(1)ヘッダフィールドが1行の場合
正規表現:“(^|¥n)<ヘッダフィールド名>:[^¥n]*<属性値の正規表現>”
(2)ヘッダフィールドが複数行にわたる場合
正規表現:“(^|¥n)<ヘッダフィールド名>:[^¥n]*(<属性値の正規表現>|(¥n(¥s|¥t)+[^¥n]*)+<属性値の正規表現>)”
ここでは、「¥n」は改行、「¥s」は半角空白、「¥t」はタブを意味するものとする。
(a)文書の形式=「電子メールのヘッダフィールド」
(b)検索対象の範囲(ヘッダフィールド名)=「Subject」
(c)範囲の検索条件(正規表現)=「メール」
これらの条件を指定することが可能であれば、その指定の方法は問わないが、例えば、テキスト範囲条件入力部109が、テキスト範囲条件として、(a)文書の形式と(b)検索対象の範囲を指定し、属性範囲条件入力部101が、属性範囲条件として、(c)範囲の検索条件を指定すればよい(このとき、属性範囲条件入力部101は、範囲の検索条件を指定することで、属性値がテキスト範囲条件データに示された範囲に含まれることも示したこととなる)。
“(^|¥n)Subject:[^¥n]*((メール)|(¥n(¥s|¥t)+[^¥n]*)+(メール))”
ここで、検索対象のヘッダフィールドが、複数行にわたることがないことがわかっていれば、単に以下の正規表現を出力するようにしてもよい。
“(^|¥n)Subject:[^¥n]*(メール)”
(a)文書の形式=「電子メールのヘッダフィールド」
(b)検索対象の範囲(ヘッダフィールド名)=「Date」
(c)検索条件(下限値と上限値)=「2005/10/1〜2006/9/31」
例えば、テキスト範囲条件入力部109が、テキスト範囲条件として、(a)文書の形式と(b)検索対象の範囲を指定し、属性範囲条件入力部101が、属性範囲条件として、(c)範囲の検索条件を指定する。
(d)属性の種類=「日付」
(e)区切り文字と階層の順序=「日 月 年」(区切り文字が空白文字(厳密には、半角空白)で、右から順に上位とする)
(f)階層「月」の値域=「Jan〜Dec」
範囲:“(^|¥n)<ヘッダフィールド名>:[^¥n]*<属性値の正規表現>”
属性範囲(属性値の正規表現):“(([1−9]|[12][0−9]|3[0−1]) (Oct|Nov|Dec) 2005)|(([1−9]|[12][0−9]|3[0−1]) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep) 2006)”
最後に、正規表現結合部105が、これらを結合すると、所望の正規表現を得ることができる。
“(^|¥n)([^,]*,){i}[^,]*<属性値の正規表現>”
(a)文書の形式=「CSV」
(b)検索対象の範囲(フィールドの番号)
(c)範囲の検索条件(正規表現)
例えば、テキスト範囲条件入力部109が、テキスト範囲条件として、(a)文書の形式と(b)検索対象の範囲を指定し、属性範囲条件入力部101が、属性範囲条件として、(c)範囲の検索条件を指定する。
“(^|¥n)(“([^”]|”“)*”,){i}”([^”]|”“)*<属性値の正規表現>”
“(^|¥n)(“([^”]|”“)*”¥t){i}”([^”]|”“)*<属性値の正規表現>”
“(^|¥n)(“([^”]|”“)*”¥s){i}”([^”]|”“)*<属性値の正規表現>”
正規表現:“(^|¥n)([^<区切り文字>]*<区切り文字>){i}[^v1−vq<区切り文字>]*<属性値の正規表現>”
これにより、“[^v1−vq]”に区切り文字自体が照合されてしまうのを防ぐことができる。
Claims (12)
- 属性値の下限値と上限値と書式とを示す属性範囲条件データを入力装置から入力する属性範囲条件入力部と、
前記属性範囲条件入力部により入力された属性範囲条件データが示す書式に基づいて、前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値以上の属性値であって、最下位桁から少なくとも1桁が当該桁の最大値である第1の値と、前記属性範囲条件入力部により入力された属性範囲条件データが示す上限値以下の属性値であって、最下位桁から少なくとも1桁が当該桁の最小値である第2の値とを、処理装置で演算する演算部と、
前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値と上限値と、前記演算部により演算された第1の値と第2の値とを、記憶装置に記憶する属性値記憶部と、
前記属性値記憶部により記憶された下限値から第1の値までの属性値を正規表現で表す下位領域データと、前記属性値記憶部により記憶された第2の値から上限値までの属性値を正規表現で表す上位領域データとを、処理装置で生成するとともに、前記属性値記憶部により記憶された第1の値と第2の値との間に属性値が存在する場合には当該属性値を正規表現で表す中位領域データを処理装置で生成する正規表現生成部と、
前記正規表現生成部により生成された下位領域データと上位領域データと中位領域データとを処理装置で結合して、前記属性値記憶部により記憶された下限値から上限値までの属性値を正規表現で表す正規表現データを生成する正規表現結合部とを備えることを特徴とする正規表現生成装置。 - 前記演算部は、前記属性範囲条件入力部により入力された属性範囲条件データが示す書式に基づいて、前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値と桁数が同じで少なくとも最上位桁以外の桁が各桁の最大値である第1の値と、前記属性範囲条件入力部により入力された属性範囲条件データが示す上限値と桁数が同じで少なくとも最上位桁以外の桁が各桁の最小値である第2の値とを、演算することを特徴とする請求項1に記載の正規表現生成装置。
- 前記演算部は、前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値と最上位桁が同じ値でそれより以外の桁が各桁の最大値である第1の値と、前記属性範囲条件入力部により入力された属性範囲条件データが示す上限値と最上位桁が同じ値でそれ以外の桁が各桁の最小値である第2の値とを、演算することを特徴とする請求項2に記載の正規表現生成装置。
- 前記属性範囲条件入力部は、属性値の書式として、属性値が数値と文字列とのいずれかであることを示す属性範囲条件データを入力することを特徴とする請求項1に記載の正規表現生成装置。
- 前記属性範囲条件入力部は、属性値の書式として、属性値が区切り文字を用いた階層構造をとる属性値であり、属性値全体を区切り文字で区切った部分の各々が前記階層構造の1階層であることを示す属性範囲条件データを入力し、
前記演算部は、属性値全体について、各階層を1桁として、第1の値と第2の値とを演算し、
前記正規表現生成部は、属性値全体について、各階層を1桁として、下位領域データと上位領域データとを生成した後に、下位領域データと上位領域データとを各階層を正規表現で表すものに変換するとともに、第1の値と第2の値との間に属性値が存在する場合には中位領域データを生成し、さらに、各階層を正規表現で表すものに変換することを特徴とする請求項1に記載の正規表現生成装置。 - 前記属性範囲条件入力部は、属性値の書式として、属性値が日付と時刻とIP(Internet・Protocol)アドレスとのいずれかであることを示す属性範囲条件データを入力することを特徴とする請求項5に記載の正規表現生成装置。
- 前記正規表現生成装置は、さらに、
所定の構文規則に従って記述されたテキストの特定の領域を示すテキスト範囲条件データを入力装置から入力するテキスト範囲条件入力部を備え、
前記属性範囲条件入力部は、属性値の書式として、属性値が前記テキスト範囲条件入力部により入力されたテキスト範囲条件データが示す領域に含まれることを示す属性範囲条件データを入力し、
前記正規表現生成部は、さらに、前記テキスト範囲条件入力部により入力されたテキスト範囲条件データが示す領域を正規表現で表すテキスト領域データを処理装置で生成し、
前記正規表現結合部は、前記属性範囲条件入力部により入力された属性範囲条件データが示す書式に基づいて、前記正規表現生成部により生成された下位領域データと上位領域データと中位領域データとテキスト領域データとを結合して、属性値を含む前記テキストの特定の領域を正規表現で表す正規表現データを生成することを特徴とする請求項1に記載の正規表現生成装置。 - 前記テキスト範囲条件入力部は、前記テキストの特定の領域として、電子メールの特定のヘッダフィールドを示すテキスト範囲条件データを入力することを特徴とする請求項7に記載の正規表現生成装置。
- 前記テキスト範囲条件入力部は、前記テキストの特定の領域として、前記テキストを区切り文字で区切ったフィールドのいずれかを示すテキスト範囲条件データを入力することを特徴とする請求項7に記載の正規表現生成装置。
- 前記正規表現生成装置は、さらに、
複数の属性範囲条件データと複数のテキスト範囲条件データとを予め記憶装置に記憶しておくとともに、各属性範囲条件データと各テキスト範囲条件データとの組み合わせを一意の識別子と対応付けて予め記憶装置に記憶しておく条件記憶部と、
任意の識別子を入力装置から入力する識別子入力部とを備え、
前記属性範囲条件入力部は、前記識別子入力部により入力された識別子に対応付けて前記条件記憶部により記憶された組み合わせの属性範囲条件データを入力し、
前記テキスト範囲条件入力部は、前記識別子入力部により入力された識別子に対応付けて前記条件記憶部により記憶された組み合わせのテキスト範囲条件データを入力することを特徴とする請求項7に記載の正規表現生成装置。 - 正規表現生成装置の属性範囲条件入力部が、属性値の下限値と上限値と書式とを示す属性範囲条件データを入力装置から入力し、
前記正規表現生成装置の演算部が、前記属性範囲条件入力部により入力された属性範囲条件データが示す書式に基づいて、前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値以上の属性値であって、最下位桁から少なくとも1桁が当該桁の最大値である第1の値と、前記属性範囲条件入力部により入力された属性範囲条件データが示す上限値以下の属性値であって、最下位桁から少なくとも1桁が当該桁の最小値である第2の値とを、処理装置で演算し、
前記正規表現生成装置の属性値記憶部が、前記属性範囲条件入力部により入力された属性範囲条件データが示す下限値と上限値と、前記演算部により演算された第1の値と第2の値とを、記憶装置に記憶し、
前記正規表現生成装置の正規表現生成部が、前記属性値記憶部により記憶された下限値から第1の値までの属性値を正規表現で表す下位領域データと、前記属性値記憶部により記憶された第2の値から上限値までの属性値を正規表現で表す上位領域データとを、処理装置で生成し、
前記正規表現生成装置の正規表現生成部が、前記属性値記憶部により記憶された第1の値と第2の値との間に属性値が存在する場合には当該属性値を正規表現で表す中位領域データを処理装置で生成し、
前記正規表現生成装置の正規表現結合部が、前記正規表現生成部により生成された下位領域データと上位領域データと中位領域データとを処理装置で結合して、前記属性値記憶部により記憶された下限値から上限値までの属性値を正規表現で表す正規表現データを生成することを特徴とする正規表現生成方法。 - 属性値の下限値と上限値と書式とを示す属性範囲条件データを入力装置から入力する属性範囲条件入力処理と、
前記属性範囲条件入力処理により入力された属性範囲条件データが示す書式に基づいて、前記属性範囲条件入力処理により入力された属性範囲条件データが示す下限値以上の属性値であって、最下位桁から少なくとも1桁が当該桁の最大値である第1の値と、前記属性範囲条件入力処理により入力された属性範囲条件データが示す上限値以下の属性値であって、最下位桁から少なくとも1桁が当該桁の最小値である第2の値とを、処理装置で演算する演算処理と、
前記属性範囲条件入力処理により入力された属性範囲条件データが示す下限値と上限値と、前記演算処理により演算された第1の値と第2の値とを、記憶装置に記憶する属性値記憶処理と、
前記属性値記憶処理により記憶された下限値から第1の値までの属性値を正規表現で表す下位領域データと、前記属性値記憶処理により記憶された第2の値から上限値までの属性値を正規表現で表す上位領域データとを、処理装置で生成するとともに、前記属性値記憶処理により記憶された第1の値と第2の値との間に属性値が存在する場合には当該属性値を正規表現で表す中位領域データを処理装置で生成する正規表現生成処理と、
前記正規表現生成処理により生成された下位領域データと上位領域データと中位領域データとを処理装置で結合して、前記属性値記憶処理により記憶された下限値から上限値までの属性値を正規表現で表す正規表現データを生成する正規表現結合処理とをコンピュータに実行させることを特徴とする正規表現生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006329679A JP4897454B2 (ja) | 2006-12-06 | 2006-12-06 | 正規表現生成装置及び正規表現生成方法及び正規表現生成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006329679A JP4897454B2 (ja) | 2006-12-06 | 2006-12-06 | 正規表現生成装置及び正規表現生成方法及び正規表現生成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008146162A JP2008146162A (ja) | 2008-06-26 |
JP4897454B2 true JP4897454B2 (ja) | 2012-03-14 |
Family
ID=39606310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006329679A Active JP4897454B2 (ja) | 2006-12-06 | 2006-12-06 | 正規表現生成装置及び正規表現生成方法及び正規表現生成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4897454B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011034274A (ja) * | 2009-07-31 | 2011-02-17 | Hitachi Solutions Ltd | テスト自動実行システム |
JP5367627B2 (ja) * | 2010-03-24 | 2013-12-11 | 三菱電機インフォメーションテクノロジー株式会社 | データ処理装置及びプログラム |
JP5698494B2 (ja) * | 2010-10-14 | 2015-04-08 | Kddi株式会社 | 携帯端末およびプログラム |
US20190384796A1 (en) | 2018-06-13 | 2019-12-19 | Oracle International Corporation | Regular expression generation using longest common subsequence algorithm on regular expression codes |
US11941018B2 (en) | 2018-06-13 | 2024-03-26 | Oracle International Corporation | Regular expression generation for negative example using context |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317509A (en) * | 1992-01-21 | 1994-05-31 | Hewlett-Packard Company | Regular expression factoring for scanning multibyte character sets with a single byte automata machine |
JPH11167566A (ja) * | 1997-12-04 | 1999-06-22 | Nippon Telegr & Teleph Corp <Ntt> | 出力機器適合型一括テキスト変換方法、装置および記録媒体 |
AU1054401A (en) * | 1999-11-02 | 2001-05-14 | Ntt Docomo, Inc. | Client server system |
-
2006
- 2006-12-06 JP JP2006329679A patent/JP4897454B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2008146162A (ja) | 2008-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5896321A (en) | Text completion system for a miniature computer | |
JP3566111B2 (ja) | 記号辞書作成方法及び記号辞書検索方法 | |
EP1522933B1 (en) | Computer aided query to task mapping | |
US8073849B2 (en) | Method and system for constructing data tag based on a concept relation network | |
US10592672B2 (en) | Testing insecure computing environments using random data sets generated from characterizations of real data sets | |
US20170075983A1 (en) | Subject-matter analysis of tabular data | |
US20080319987A1 (en) | System, method and program for creating index for database | |
US20120166438A1 (en) | System and method for recommending queries related to trending topics based on a received query | |
CN106383836B (zh) | 将可操作属性归于描述个人身份的数据 | |
US20180267953A1 (en) | Context-based text auto completion | |
US7761458B1 (en) | Segmentation of a data sequence | |
KR20060045535A (ko) | 사용자 모델링을 통한 효율적인 대문자화 훈련 방법 | |
US8266150B1 (en) | Scalable document signature search engine | |
CN105373365A (zh) | 用于管理关于近似串匹配的档案的方法和系统 | |
US10552497B2 (en) | Unbiasing search results | |
JP4897454B2 (ja) | 正規表現生成装置及び正規表現生成方法及び正規表現生成プログラム | |
Rieger et al. | RollingLDA: An update algorithm of Latent Dirichlet Allocation to construct consistent time series from textual data | |
Xu et al. | A new feature selection method based on support vector machines for text categorisation | |
Claesson et al. | Counting pop-stacked permutations in polynomial time | |
Dogra et al. | Understanding of data preprocessing for dimensionality reduction using feature selection techniques in text classification | |
US8266228B2 (en) | Tagging communication files based on historical association of tags | |
Sohrabi et al. | Finding similar documents using frequent pattern mining methods | |
CN103678355B (zh) | 文本挖掘方法和文本挖掘装置 | |
Amazal et al. | A text classification approach using parallel naive Bayes in big data context | |
TW202232363A (zh) | 文書檢索裝置、文書檢索方法、及文書檢索程式產品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091001 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111202 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111220 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4897454 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150106 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |