性能问题与grep

我正在使用grep在单个文件中搜索多个正则表达式。 特别是,我正在考虑一个带有英文字幕的100 MB文件,并在文件patterns.txt中运行以下正则表达式:

Cas.*eharden
acr.*otic
syn.*thesizing
sub.*abbot
iss.*acharite
bot.*onne
dis.*similatory
ove.*rmantel
isa.*tin
ado.*nijah
sol.*ution
zei.*st
fam.*ousness
inq.*uisitress
aor.*tography
via.*duct
ama.*sa
der.*ive
pie.*tas
kit.*chenette

在这样做的时候,我发现grep所需的时间并不随正则表达式的数量而线性增长。 事实上,它似乎呈指数级增长。

实验

系统: Intel(R)Core(TM)i5-5200U CPU @ 2.20GHz; 4个核心; 8 GB RAM

案例1:20个正则表达式

命令grep -c -f patterns.txt subtitles.txt计数2214个事件并采取
2,19s用户0,00s系统99%cpu 2,192 total。

案例2:30个正则表达式

如果我将以下表达式添加到patterns.txt

ort.*hros
ove.*ridentify
mis.*tiest
pay.*ne
int.*erchasing
jej.*uneness
sta.*lactiform
und.*ertrain
cob.*bles
Sub.*category

命令grep -c -f patterns.txt subtitles.txt计数2894个事件并占用71,35s用户0,06s系统99%CPU 1:11,42总数。

案例3:35个正则表达式

添加五个表达式:

dis.*embosom
imp.*ortunateness
ema.*thion
rho.*mb
haz.*elwood

命令grep -c -f patterns.txt subtitles.txt计数2904个事件并占用211,18个用户0,22s系统99%cpu 3:共31,558个

为什么grep -f显示这样的行为? 内部在做什么?

我一直在使用的整套正则表达式可以在这里找到


从阅读grep源代码看来,文件中的正则表达式不会一次执行一次。 相反,它们被一次读入一个大的正则表达式:

case 'f':
  fp = STREQ (optarg, "-") ? stdin : fopen (optarg, O_TEXT ? "rt" : "r");
  if (!fp)
    error (EXIT_TROUBLE, errno, "%s", optarg);
  for (keyalloc = 1; keyalloc <= keycc + 1; keyalloc *= 2)
    ;
  keys = xrealloc (keys, keyalloc);
  oldcc = keycc;
  while ((cc = fread (keys + keycc, 1, keyalloc - 1 - keycc, fp)) != 0)
    {
      keycc += cc;
      if (keycc == keyalloc - 1)
        keys = x2nrealloc (keys, &keyalloc, sizeof *keys);
    }

这已经得到证实,看着你的命令运行strace grep:

open("testreg", O_RDONLY)               = 3
fstat(3, {st_mode=S_IFREG|0664, st_size=124, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd8912fe000
read(3, "ort.*hrosnove.*ridentifynmis.*ti"..., 4096) = 124

回溯正则表达式实现(允许反向引用),不要在O(n)时间运行,而是运行O(2 ^ m),这可能导致灾难性运行时。

假设grep只是依次循环遍历每个正则表达式,将每个正则表达式编译为DFA,然后执行它是非常合理的。 然而,看起来grep作者认为通过一次运行你的正则表达式,他们可能在某些情况下更有效地做到这一点。 结果是,通过将regex添加到文件中,您将落入O(2 ^ m)运行时,从而导致运行时呈指数增长。

事实证明,简单地循环遍历每个执行它们的正则表达式可能会更有效,从而迫使您的grep线性运行。 在我的笔记本电脑上运行grep版本2.20,我只使用您提供的文件中最后29个正则表达式得到以下结果:

[Downloads]$ wc -l patterns.txt 
29 patterns.txt

[Downloads]$ time grep -c -f ~/Downloads/patterns.txt /usr/share/dict/linux.words 
117

real    0m3.092s
user    0m3.027s
sys     0m0.047s

[csd@alcazar Downloads]$ time for regex in `cat ~/Downloads/patterns.txt`; do grep -c $regex /usr/share/dict/linux.words > /dev/null; done
real    0m0.474s
user    0m0.312s
sys     0m0.158s

我有点迟到,但想澄清问题所在。
首先, .*不应该跨越换行符,永远不会!

刚开始,你绝对不应该使用扫描的单独的正则表达式
相同的目标文本区域(完全独立的主题)。

好的,所以在这一点上,我们要做的事情是可行的。

在构建和组合正则表达式时,我们有一个选择。
我们可以确保每一个单独的交替。
但是,如果我们有大量的大部分文字正则表达式,这将会
造成问题。

考虑一个由大多数字母数字字符组成的正则表达式。
在外层交替层面上,我们只想给引擎一个最大值
26个通道供发动机通过。
当我们转向中学阶段(在每条路径中)时,我们想要给予
该引擎另有26个最大通路。
这种选择再次发生在那些途径,以及每个孩子的途径等等。

这是一个完整的,多层次的正则表达式的定义。
这大大减少了匹配的步骤数量,我将在下面展示。

我已经采取了你的patterns.txt并制作了两种类型的表达式。
一个没有trie,一个与。

你有580个独立的模式,我们将结合。
在没有线索的那个线路上,这使得580个外层线路。
在一个trie中,它会创建25条路径。
仅仅这一点代表了速度差异为20比1。

继续前进,我们走得更远,并为每个级别创建所有的子路径trie。
这样做会及时刮除10-30倍。

你的模式大都是统一的,因为它们每个都有一个3个字母的常量
在贪婪的量词之前.*
之后,子树仍然是构建的,但在这一点上
轻微的影响。

我使用了RegexFormat 8实用程序
正则表达式的字符串 - 生成完整字符串的三元树
来自字符串文字。

我将这个生成的正则表达式与未改变的模式列表进行比较
正则表达式,其中我通过在每个正则表达式之间添加了一个交替。

对于测试样本,我使用了一半
100 MB file with English subtitles
这大约是50 MB。
该测试是使用RegexFormat 8内置的Benchmark Utility进行的。

Regex1是全面生成的trie。
Regex2是非特里版本。

每个正则表达式匹配50MB目标中的36,776个项目。
然而,时代却非常不同。

结果:

Regex1:   (?:A(?:gr.*iology|nk.*let|tt.*ributive)|Bow.*ls|Cas.*eharden|Iso.*propyl|L(?:ab.*ella|ic.*htenberg)|Neu.*stic|Oro.*nasally|Pen.*stemon|R(?:e(?:i.*nspiration|p.*rovable)|up.*ee)|S(?:hi.*gellae|te.*rlet|ub.*(?:category|epithelial))|Vit.*alian|Wer.*e|a(?:c(?:a.*demic|e.*t(?:aldol|ylation)|h.*enial|i.*dimeter|r.*otic)|d(?:e.*nosarcomata|m.*easurer|o.*nijah)|ec.*ium|ir.*less|l(?:e.*xandroupolis|k.*alisation|l.*owable|m.*swomen)|m(?:a.*sa|n.*esic|y.*xorrhea)|n(?:c.*one|e.*mogram|g.*elical|o.*(?:ciassociation|le)|t.*imechanistic)|or.*tography|p(?:i.*sh|o.*carpous|ï.*¿¥ï¾½ritif)|r(?:c.*hipelagic|m.*ored|n.*oldson|y.*balloid)|s(?:c.*endent|t.*ound)|tt.*ainder|u(?:d.*ience|s.*tralioid|t.*ostoper)|va.*re|zi.*muthal)|b(?:a(?:b.*ette|l.*let|n.*galay|r.*(?:a|racuda|tolozzi))|e(?:a.*dsman|r.*(?:dache|nardsville))|is.*ymmetrically|la.*ckbuck|o(?:b.*owler|g.*(?:hazk¥ᄀy|omilism)|o.*mingly|r.*onic|t.*onne|u.*rbonnais)|r(?:i.*olette|o.*(?:minate|wne)|y.*ophytic)|ui.*ldup)|c(?:a(?:j.*ole|r.*teret|s.*sie|t.*(?:awba|hexes))|e(?:n.*(?:serless|tralist)|r.*(?:emoniously|tify))|h(?:a.*nduy|l.*orohydrin|o.*ya|r.*omoplast)|li.*(?:ckless|ntonville|toridean)|o(?:b.*bles|c.*kaded|g.*itable|h.*esiveness|l.*(?:lectivise|onially|umba)|n.*(?:gregativeness|strictive|tortion|vulsive)|r.*deliers|ï.*¿¥ï¾¡peratively)|r(?:a.*ckers|c.*hes|e.*stline|o.*(?:akier|uton))|u(?:l.*turist|r.*bless)|ï¿.*¥ï¾½dula)|d(?:''.*s|a(?:m.*selfishes|n.*dier)|e(?:a.*minize|f.*enseless|h.*umanize|m.*ulsifying|r.*(?:ive|mabrasion)|s.*(?:de|iderative)|v.*(?:a|olatilizing))|i(?:a.*dochy|h.*ydromorphinone|p.*lomatical|s.*(?:e(?:mbosom|nfranchisement|stablish)|similatory|tinguished|yllabize)|v.*ulgement)|o(?:l.*phinfishes|o.*rstep|r.*ter)|r(?:a.*(?:gonhead|maturge)|e.*ssing|u.*dging)|ul.*cimer)|e(?:as.*iness|co.*nometrician|ff.*ortful|l(?:e.*git|o.*ign)|m(?:a.*thion|e.*ndatory)|pi.*zoite|qu.*ipoise|st.*afette|th.*(?:nolinguistics|yl(?:ated|dichloroarsine))|x(?:c.*uss|h.*umed|p.*(?:andible|iable|ostulation)|t.*ravasating)|yc.*k)|f(?:a(?:m.*ousness|n.*tasied)|e(?:l.*ony|r.*(?:rotype|vidly)|w.*er)|i(?:l.*ial|s.*her)|l(?:a.*m(?:b¥ᄑ|eproof)|e.*et)|o(?:r.*(?:dyce|mularize)|z.*iness)|re.*ak|u(?:n.*goid|r.*ry))|g(?:a(?:l.*(?:act(?:in|oid)|vanically|way)|s.*(?:ifier|trostomy)|u.*(?:l|ssmeter))|e(?:g.*enion|n.*(?:eseo|ista)|o.*phyte|s.*tative)|in.*gili|lo.*(?:be|ssary)|o(?:d.*(?:hood|liest)|l.*dberg)|r(?:a.*(?:n(?:ddaddy|ulating)|vimetry)|e.*endale)|ua.*iacum|wy.*dion)|h(?:a(?:l.*lmark|r.*d(?:handed|ly)|s.*tefully|t.*shepset|z.*elwood)|e(?:a.*rt(?:eningly|sick)|c.*tometre|m.*atoid|p.*tode|t.*erodactyl|u.*neburg)|id.*eout|o(?:n.*orius|p.*s|r.*(?:nbeam|ribly)|v.*elled)|u(?:n.*k|r.*ricane)|y(?:o.*scine|p.*othallus))|i(?:d(?:e.*ler|m.*on)|ll.*iquidly|m(?:m.*obilize|p.*(?:ort(?:antly|unateness)|udently))|n(?:a.*dequacy|c.*linable|d.*ustrialised|e.*quitable|f.*ringer|g.*rate|q.*uisitress|t.*(?:er(?:aural|belligerent|chasing|hybridized|mundane)|ranuclear))|od.*ise|r(?:e.*nical|k.*someness|r.*uptively)|s(?:a.*tin|s.*acharite))|j(?:a(?:i.*na|m.*aican)|e(?:a.*n|d.*burgh|j.*uneness|w.*ishness)|id.*da|ud.*ea)|k(?:am.*seen|ea.*nsburg|i(?:l.*obaud|t.*chenette)|la.*nism|on.*a|uw.*ait)|l(?:ac.*unaria|i(?:e.*der|m.*acine|n.*us|q.*uer|s.*tlessly)|o(?:c.*k|g.*(?:iciz(?:e|ing)|ographer))|u(?:k.*s|m.*inal)|ym.*phogranulomata)|m(?:a(?:m.*al(?:lapuram|uke)|r.*(?:acanda|or)|s.*sys)|ca.*llen|e(?:i.*lhac|t.*hylate)|i(?:n.*imalist|s.*(?:a(?:nalyzing|uthorizing)|ce|quoting|shipping|tiest)|t.*tatur)|on.*othelitic|u(?:l.*ti(?:chrome|volumed)|s.*siest))|n(?:at.*atoriums|e(?:c.*rologically|m.*o|o.*styled|p.*hritic|t.*tlelike|u.*roglial|w.*fangledly)|o(?:g.*gin|n.*(?:a(?:mendment|scetic|ttachment)|dilution|knowledgeable|narrative|receptive|s(?:a(?:cramental|linity)|ecrecy|tability|uspended))|r.*mandy|u.*akchott)|ur.*turable)|o(?:li.*o|p(?:e.*nairness|h.*thalmoscopy|s.*onin)|r(?:a.*cles|i.*entally|o.*logist|t.*hros)|sc.*illator|u(?:s.*el|t.*(?:chasing|drew|echoing))|ve.*r(?:glad|hang|i(?:dentify|mpressibility|ntensified)|m(?:antel|uch)|spacious|thriftiness)|wl.*ishness|xy.*genicity)|p(?:a(?:r.*(?:a(?:professional|tences)|entalia)|y.*ne)|e(?:d.*al|e.*p|n.*(?:etrableness|u(?:mbra|rious))|r.*(?:ches|istaltically))|h(?:i.*landerer|o.*(?:nautograph|to(?:n|static)))|i(?:c.*nicking|e.*tas|n.*gr|p.*pin)|la.*yday|ne.*umoencephalogram|o(?:o.*fter|p.*sy)|r(?:e.*(?:a(?:cceptance|ffiliated|ging)|con(?:flict|triving)|d(?:eprive|is(?:ciplined|guise))|expeditionary|historically|insult|judger|pense|s(?:entimental|u(?:bscription|itable))|t(?:ry|ypify))|o.*(?:fligateness|mulger|t(?:eid|oplasmic)))|se.*udo(?:cele|nymous)|u(?:b.*licized|i.*rness|n.*ctualness|r.*sing|t.*rilaginous)|yx.*is)|qu(?:a.*rreler|i.*st|o.*dlibetically)|r(?:a(?:d.*iotelemetry|g.*gedy)|e(?:c.*(?:ampaign|umbent)|d.*ominating|e.*xpose|f.*ulgentness|i.*(?:maged|nhardt|temized)|m.*ontoire|o.*rientating|p.*(?:e(?:llant|n)|lunging)|s.*hook|t.*(?:elegraph|ral)|v.*ocableness)|h(?:i.*naria|o.*mb)|i(?:d.*dle|f.*leman)|o(?:d.*eo|l.*lo|u.*che|y.*ce))|s(?:a(?:l.*ic|n.*(?:ctimonious|d))|c(?:e.*ptic|o.*ttish|r.*u(?:ffiest|mpy)|u.*lptor)|e(?:l.*ves|p.*arator)|h(?:e.*lbyville|i.*pboard|o.*shone)|in.*(?:cerely|gularise)|lo.*wpoke|m(?:i.*dgin|o.*keproof)|o(?:l.*ution|p.*rano|r.*(?:bian|rento)|u.*thwest)|p(?:a.*lato|i.*nning|r.*itehood)|t(?:a.*(?:lactiform|minodia|ndish|toblast)|e.*rope|i.*lyaga)|u(?:b.*(?:abbot|extensible|foliation|jectional|preceptorial|stantialness|tegumental)|k.*arnapura|l.*liable|n.*ward|p.*eracquisition)|wi.*m|yn.*thesizing)|t(?:a(?:l.*kie|t.*tooed)|e(?:l.*e(?:cast|g|ran)|n.*sionless|r.*minatory|t.*radrachm)|h(?:e.*(?:ban|r(?:m(?:alize|obarograph)|ophyte)|spian)|i.*osinamine)|ig.*r¥ᄑ|o(?:n.*eless|r.*ulosis)|ra.*(?:lles|pani)|u(?:m.*idity|n.*eableness)|w(?:e.*enies|o.*three)|y(?:l.*er|p.*ewrote))|u(?:lt.*raviruses|n(?:b.*(?:esmirched|oring)|c.*o(?:mmitted|n(?:fronted|tr(?:asted|ibutory)))|d.*(?:e(?:based|r(?:framework|nourish|populated|train))|ischarged|rowned)|e.*xceeded|f.*orgeability|g.*(?:oaded|roupable)|l.*oyalty|m.*ounting|o.*ceanic|p.*(?:erishing|hlegmatic|recocious)|r.*e(?:ached|counted|solvable)|s.*(?:e(?:parative|rrate)|hadowable|ilicified|l(?:immed|uiced)|naky|pelt|t(?:ealthy|oppably)|werving)|t.*(?:heistical|r(?:ansparent|ustworthy))|u.*seful|w.*hisked)|p(?:b.*ear|p.*ercutting)|rs.*ula)|v(?:a(?:l.*ois|p.*orize|r.*as|t.*ican)|er.*us|i(?:a.*duct|c.*tualing|l.*lose)|ul.*canizer)|w(?:a(?:r.*rington|x.*y)|e(?:a.*rability|s.*termarck)|he.*rrit|i(?:s.*teria|t.*hy)|ul.*fenite)|y(?:es.*enin|ol.*ande)|z(?:e(?:b.*ec|i.*st|l.*os)|on.*ule))
Options:  < none >
Completed iterations:   1  /  1     ( x 1 )
Matches found per iteration:   36776
Elapsed Time:    19.94 s,   19936.96 ms,   19936963 µs


Regex2:   (?:Cas.*eharden|acr.*otic|... (truncated)
Options:  < none >
Completed iterations:   1  /  1     ( x 1 )
Matches found per iteration:   36776
Elapsed Time:    299.74 s,   299735.86 ms,   299735857 µs

格式化(扩展)时,正则表达式更好。

结论 - 我建议使用全面的技术支持来治疗您的病情
延迟问题。

祝你好运 !!
如果你有任何问题随时问。

(?:
    A
    (?:
        gr .* iology
      | nk .* let
      | tt .* ributive 
    )
  | Bow .* ls
  | Cas .* eharden
  | Iso .* propyl
  | L
    (?: ab .* ella | ic .* htenberg )
  | Neu .* stic
  | Oro .* nasally
  | Pen .* stemon
  | R
    (?:
        e
        (?: i .* nspiration | p .* rovable )
      | up .* ee
    )
  | S
    (?:
        hi .* gellae
      | te .* rlet
      | ub .* 
        (?: category | epithelial )
    )
  | Vit .* alian
  | Wer .* e
  | a
    (?:
        c
        (?:
            a .* demic
          | e .* t
            (?: aldol | ylation )
          | h .* enial
          | i .* dimeter
          | r .* otic
        )
      | d
        (?:
            e .* nosarcomata
          | m .* easurer
          | o .* nijah
        )
      | ec .* ium
      | ir .* less
      | l
        (?:
            e .* xandroupolis
          | k .* alisation
          | l .* owable
          | m .* swomen
        )
      | m
        (?: a .* sa | n .* esic | y .* xorrhea )
      | n
        (?:
            c .* one
          | e .* mogram
          | g .* elical
          | o .* 
            (?: ciassociation | le )
          | t .* imechanistic
        )
      | or .* tography
      | p
        (?:
            i .* sh
          | o .* carpous
          | ï .* ¿¥ï¾½ritif 
        )
      | r
        (?:
            c .* hipelagic
          | m .* ored
          | n .* oldson
          | y .* balloid
        )
      | s
        (?: c .* endent | t .* ound )
      | tt .* ainder
      | u
        (?:
            d .* ience
          | s .* tralioid
          | t .* ostoper 
        )
      | va .* re
      | zi .* muthal
    )
  | b
    (?:
        a
        (?:
            b .* ette
          | l .* let
          | n .* galay
          | r .* 
            (?: a | racuda | tolozzi )
        )
      | e
        (?:
            a .* dsman
          | r .* 
            (?: dache | nardsville )
        )
      | is .* ymmetrically
      | la .* ckbuck
      | o
        (?:
            b .* owler
          | g .* 
            (?: hazk¥ᄀy | omilism )
          | o .* mingly
          | r .* onic
          | t .* onne
          | u .* rbonnais
        )
      | r
        (?:
            i .* olette
          | o .* 
            (?: minate | wne )
          | y .* ophytic
        )
      | ui .* ldup
    )
  | c
    (?:
        a
        (?:
            j .* ole
          | r .* teret
          | s .* sie
          | t .* 
            (?: awba | hexes )
        )
      | e
        (?:
            n .* 
            (?: serless | tralist )
          | r .* 
            (?: emoniously | tify )
        )
      | h
        (?:
            a .* nduy
          | l .* orohydrin
          | o .* ya
          | r .* omoplast
        )
      | li .* 
        (?: ckless | ntonville | toridean )
      | o
        (?:
            b .* bles
          | c .* kaded
          | g .* itable
          | h .* esiveness
          | l .* 
            (?: lectivise | onially | umba )
          | n .* 
            (?:
                gregativeness
              | strictive
              | tortion
              | vulsive 
            )
          | r .* deliers
          | ï .* ¿¥ï¾¡peratively
        )
      | r
        (?:
            a .* ckers
          | c .* hes
          | e .* stline
          | o .* 
            (?: akier | uton )
        )
      | u
        (?: l .* turist | r .* bless )
      | ï¿ .* ¥ï¾½dula
    )
  | d
    (?:
        '' .* s
      | a
        (?: m .* selfishes | n .* dier )
      | e
        (?:
            a .* minize
          | f .* enseless
          | h .* umanize
          | m .* ulsifying
          | r .* 
            (?: ive | mabrasion )
          | s .* 
            (?: de | iderative )
          | v .* 
            (?: a | olatilizing )
        )
      | i
        (?:
            a .* dochy
          | h .* ydromorphinone
          | p .* lomatical
          | s .* 
            (?:
                e
                (?: mbosom | nfranchisement | stablish )
              | similatory
              | tinguished
              | yllabize
            )
          | v .* ulgement
        )
      | o
        (?:
            l .* phinfishes
          | o .* rstep
          | r .* ter 
        )
      | r
        (?:
            a .* 
            (?: gonhead | maturge )
          | e .* ssing
          | u .* dging
        )
      | ul .* cimer
    )
  | e
    (?:
        as .* iness
      | co .* nometrician
      | ff .* ortful
      | l
        (?: e .* git | o .* ign )
      | m
        (?: a .* thion | e .* ndatory )
      | pi .* zoite
      | qu .* ipoise
      | st .* afette
      | th .* 
        (?:
            nolinguistics
          | yl
            (?: ated | dichloroarsine )
        )
      | x
        (?:
            c .* uss
          | h .* umed
          | p .* 
            (?: andible | iable | ostulation )
          | t .* ravasating
        )
      | yc .* k
    )
  | f
    (?:
        a
        (?: m .* ousness | n .* tasied )
      | e
        (?:
            l .* ony
          | r .* 
            (?: rotype | vidly )
          | w .* er
        )
      | i
        (?: l .* ial | s .* her )
      | l
        (?:
            a .* m
            (?: b¥ᄑ | eproof )
          | e .* et
        )
      | o
        (?:
            r .* 
            (?: dyce | mularize )
          | z .* iness
        )
      | re .* ak
      | u
        (?: n .* goid | r .* ry )
    )
  | g
    (?:
        a
        (?:
            l .* 
            (?:
                act
                (?: in | oid )
              | vanically
              | way
            )
          | s .* 
            (?: ifier | trostomy )
          | u .* 
            (?: l | ssmeter )
        )
      | e
        (?:
            g .* enion
          | n .* 
            (?: eseo | ista )
          | o .* phyte
          | s .* tative
        )
      | in .* gili
      | lo .* 
        (?: be | ssary )
      | o
        (?:
            d .* 
            (?: hood | liest )
          | l .* dberg
        )
      | r
        (?:
            a .* 
            (?:
                n
                (?: ddaddy | ulating )
              | vimetry
            )
          | e .* endale
        )
      | ua .* iacum
      | wy .* dion
    )
  | h
    (?:
        a
        (?:
            l .* lmark
          | r .* d
            (?: handed | ly )
          | s .* tefully
          | t .* shepset
          | z .* elwood
        )
      | e
        (?:
            a .* rt
            (?: eningly | sick )
          | c .* tometre
          | m .* atoid
          | p .* tode
          | t .* erodactyl
          | u .* neburg
        )
      | id .* eout
      | o
        (?:
            n .* orius
          | p .* s
          | r .* 
            (?: nbeam | ribly )
          | v .* elled
        )
      | u
        (?: n .* k | r .* ricane )
      | y
        (?: o .* scine | p .* othallus )
    )
  | i
    (?:
        d
        (?: e .* ler | m .* on )
      | ll .* iquidly
      | m
        (?:
            m .* obilize
          | p .* 
            (?:
                ort
                (?: antly | unateness )
              | udently
            )
        )
      | n
        (?:
            a .* dequacy
          | c .* linable
          | d .* ustrialised
          | e .* quitable
          | f .* ringer
          | g .* rate
          | q .* uisitress
          | t .* 
            (?:
                er
                (?:
                    aural
                  | belligerent
                  | chasing
                  | hybridized
                  | mundane
                )
              | ranuclear
            )
        )
      | od .* ise
      | r
        (?:
            e .* nical
          | k .* someness
          | r .* uptively 
        )
      | s
        (?: a .* tin | s .* acharite )
    )
  | j
    (?:
        a
        (?: i .* na | m .* aican )
      | e
        (?:
            a .* n
          | d .* burgh
          | j .* uneness
          | w .* ishness
        )
      | id .* da
      | ud .* ea
    )
  | k
    (?:
        am .* seen
      | ea .* nsburg
      | i
        (?: l .* obaud | t .* chenette )
      | la .* nism
      | on .* a
      | uw .* ait
    )
  | l
    (?:
        ac .* unaria
      | i
        (?:
            e .* der
          | m .* acine
          | n .* us
          | q .* uer
          | s .* tlessly
        )
      | o
        (?:
            c .* k
          | g .* 
            (?:
                iciz
                (?: e | ing )
              | ographer
            )
        )
      | u
        (?: k .* s | m .* inal )
      | ym .* phogranulomata
    )
  | m
    (?:
        a
        (?:
            m .* al
            (?: lapuram | uke )
          | r .* 
            (?: acanda | or )
          | s .* sys
        )
      | ca .* llen
      | e
        (?: i .* lhac | t .* hylate )
      | i
        (?:
            n .* imalist
          | s .* 
            (?:
                a
                (?: nalyzing | uthorizing )
              | ce
              | quoting
              | shipping
              | tiest
            )
          | t .* tatur
        )
      | on .* othelitic
      | u
        (?:
            l .* ti
            (?: chrome | volumed )
          | s .* siest
        )
    )
  | n
    (?:
        at .* atoriums
      | e
        (?:
            c .* rologically
          | m .* o
          | o .* styled
          | p .* hritic
          | t .* tlelike
          | u .* roglial
          | w .* fangledly
        )
      | o
        (?:
            g .* gin
          | n .* 
            (?:
                a
                (?: mendment | scetic | ttachment )
              | dilution
              | knowledgeable
              | narrative
              | receptive
              | s
                (?:
                    a
                    (?: cramental | linity )
                  | ecrecy
                  | tability
                  | uspended
                )
            )
          | r .* mandy
          | u .* akchott
        )
      | ur .* turable
    )
  | o
    (?:
        li .* o
      | p
        (?:
            e .* nairness
          | h .* thalmoscopy
          | s .* onin
        )
      | r
        (?:
            a .* cles
          | i .* entally
          | o .* logist
          | t .* hros
        )
      | sc .* illator
      | u
        (?:
            s .* el
          | t .* 
            (?: chasing | drew | echoing )
        )
      | ve .* r
        (?:
            glad
          | hang
          | i
            (?: dentify | mpressibility | ntensified )
          | m
            (?: antel | uch )
          | spacious
          | thriftiness
        )
      | wl .* ishness
      | xy .* genicity
    )
  | p
    (?:
        a
        (?:
            r .* 
            (?:
                a
                (?: professional | tences )
              | entalia
            )
          | y .* ne
        )
      | e
        (?:
            d .* al
          | e .* p
          | n .* 
            (?:
                etrableness
              | u
                (?: mbra | rious )
            )
          | r .* 
            (?: ches | istaltically )
        )
      | h
        (?:
            i .* landerer
          | o .* 
            (?:
                nautograph
              | to
                (?: n | static )
            )
        )
      | i
        (?:
            c .* nicking
          | e .* tas
          | n .* gr
          | p .* pin 
        )
      | la .* yday
      | ne .* umoencephalogram
      | o
        (?: o .* fter | p .* sy )
      | r
        (?:
            e .* 
            (?:
                a
                (?: cceptance | ffiliated | ging )
              | con
                (?: flict | triving )
              | d
                (?:
                    eprive
                  | is
                    (?: ciplined | guise )
                )
              | expeditionary
              | historically
              | insult
              | judger
              | pense
              | s
                (?:
                    entimental
                  | u
                    (?: bscription | itable )
                )
              | t
                (?: ry | ypify )
            )
          | o .* 
            (?:
                fligateness
              | mulger
              | t
                (?: eid | oplasmic )
            )
        )
      | se .* udo
        (?: cele | nymous )
      | u
        (?:
            b .* licized
          | i .* rness
          | n .* ctualness
          | r .* sing
          | t .* rilaginous
        )
      | yx .* is
    )
  | qu
    (?:
        a .* rreler
      | i .* st
      | o .* dlibetically 
    )
  | r
    (?:
        a
        (?: d .* iotelemetry | g .* gedy )
      | e
        (?:
            c .* 
            (?: ampaign | umbent )
          | d .* ominating
          | e .* xpose
          | f .* ulgentness
          | i .* 
            (?: maged | nhardt | temized )
          | m .* ontoire
          | o .* rientating
          | p .* 
            (?:
                e
                (?: llant | n )
              | lunging
            )
          | s .* hook
          | t .* 
            (?: elegraph | ral )
          | v .* ocableness
        )
      | h
        (?: i .* naria | o .* mb )
      | i
        (?: d .* dle | f .* leman )
      | o
        (?:
            d .* eo
          | l .* lo
          | u .* che
          | y .* ce 
        )
    )
  | s
    (?:
        a
        (?:
            l .* ic
          | n .* 
            (?: ctimonious | d )
        )
      | c
        (?:
            e .* ptic
          | o .* ttish
          | r .* u
            (?: ffiest | mpy )
          | u .* lptor
        )
      | e
        (?: l .* ves | p .* arator )
      | h
        (?:
            e .* lbyville
          | i .* pboard
          | o .* shone 
        )
      | in .* 
        (?: cerely | gularise )
      | lo .* wpoke
      | m
        (?: i .* dgin | o .* keproof )
      | o
        (?:
            l .* ution
          | p .* rano
          | r .* 
            (?: bian | rento )
          | u .* thwest
        )
      | p
        (?: a .* lato | i .* nning | r .* itehood )
      | t
        (?:
            a .* 
            (?: lactiform | minodia | ndish | toblast )
          | e .* rope
          | i .* lyaga
        )
      | u
        (?:
            b .* 
            (?:
                abbot
              | extensible
              | foliation
              | jectional
              | preceptorial
              | stantialness
              | tegumental
            )
          | k .* arnapura
          | l .* liable
          | n .* ward
          | p .* eracquisition
        )
      | wi .* m
      | yn .* thesizing
    )
  | t
    (?:
        a
        (?: l .* kie | t .* tooed )
      | e
        (?:
            l .* e
            (?: cast | g | ran )
          | n .* sionless
          | r .* minatory
          | t .* radrachm
        )
      | h
        (?:
            e .* 
            (?:
                ban
              | r
                (?:
                    m
                    (?: alize | obarograph )
                  | ophyte
                )
              | spian
            )
          | i .* osinamine
        )
      | ig .* r¥ᄑ
      | o
        (?: n .* eless | r .* ulosis )
      | ra .* 
        (?: lles | pani )
      | u
        (?: m .* idity | n .* eableness )
      | w
        (?: e .* enies | o .* three )
      | y
        (?: l .* er | p .* ewrote )
    )
  | u
    (?:
        lt .* raviruses
      | n
        (?:
            b .* 
            (?: esmirched | oring )
          | c .* o
            (?:
                mmitted
              | n
                (?:
                    fronted
                  | tr
                    (?: asted | ibutory )
                )
            )
          | d .* 
            (?:
                e
                (?:
                    based
                  | r
                    (?:
                        framework
                      | nourish
                      | populated
                      | train 
                    )
                )
              | ischarged
              | rowned
            )
          | e .* xceeded
          | f .* orgeability
          | g .* 
            (?: oaded | roupable )
          | l .* oyalty
          | m .* ounting
          | o .* ceanic
          | p .* 
            (?: erishing | hlegmatic | recocious )
          | r .* e
            (?: ached | counted | solvable )
          | s .* 
            (?:
                e
                (?: parative | rrate )
              | hadowable
              | ilicified
              | l
                (?: immed | uiced )
              | naky
              | pelt
              | t
                (?: ealthy | oppably )
              | werving
            )
          | t .* 
            (?:
                heistical
              | r
                (?: ansparent | ustworthy )
            )
          | u .* seful
          | w .* hisked
        )
      | p
        (?: b .* ear | p .* ercutting )
      | rs .* ula
    )
  | v
    (?:
        a
        (?:
            l .* ois
          | p .* orize
          | r .* as
          | t .* ican 
        )
      | er .* us
      | i
        (?: a .* duct | c .* tualing | l .* lose )
      | ul .* canizer
    )
  | w
    (?:
        a
        (?: r .* rington | x .* y )
      | e
        (?: a .* rability | s .* termarck )
      | he .* rrit
      | i
        (?: s .* teria | t .* hy )
      | ul .* fenite
    )
  | y
    (?: es .* enin | ol .* ande )
  | z
    (?:
        e
        (?: b .* ec | i .* st | l .* os )
      | on .* ule
    )
)
链接地址: http://www.djcxy.com/p/96491.html

上一篇: Performance issue with grep

下一篇: Where to use "var' in javascript programs