Вы должны превратить регулярное выражение в три.
Это меньше работы для двигателя, он должен сделать не более 16 шагов, чтобы выйти из строя
вместо текущих 110 шагов это делает сейчас.
Попробуйте
A(?:achen|ugsburg)|B(?:a(?:den-Württemberg|varia|yern)|er(?:gisch[ ]Gladbach|lin)|ielefeld|o(?:chum|nn|ttrop)|r(?:a(?:ndenbur|unschwei)g|eme(?:rhave)?n))|C(?:hemnitz|ologne)|D(?:armstadt|eutsch|ortmund|resden|uisburg|üsseldorf)|E(?:r(?:furt|langen)|ssen)|F(?:r(?:ankfurt|eiburg)|ürth)|G(?:e(?:lsenkirche|rma)n|öttingen)|H(?:a(?:gen|lle|m(?:burg|m)|n(?:n)?over)|e(?:i(?:delberg|lbronn)|rne|ssen?)|ildesheim)|Ingolstadt|Jena|K(?:a(?:rlsruhe|ssel)|iel|oblenz|refeld|öln)|L(?:e(?:ipzig|verkusen)|ower[ ]Saxony|udwigshafen|übeck)|M(?:a(?:gdeburg|inz|nnheim)|ecklenburg-Vorpommern|oers|unich|önchengladbach|ü(?:lheim|n(?:chen|ster)))|N(?:euss|iedersachsen|or(?:drhein-Westfalen|th[ ]Rhine-)|uremberg|ürnberg)|O(?:berhausen|ffenbach|ldenburg|snabrück)|P(?:aderborn|forzheim|otsdam)|R(?:e(?:cklinghausen|gensburg|mscheid|utlingen)|h(?:einland-Pfalz|ineland-Palatinate)|ostock)|S(?:a(?:a(?:le|r(?:brücken|land))|chsen(?:-Anhalt)?|lzgitter|xony(?:-Anhalt)?)|chleswig-Holstein|iegen|olingen|tuttgart)|T(?:h(?:uringia|üringen)|rier)|Ulm|W(?:estphalia|iesbaden|olfsburg|uppertal|ürzburg)
Измените (?:
на (
, если ваш движок не поддерживает синтаксис без захвата.
Кроме того, вы можете изменить [ ]
на пробел, если хотите на сжатый
регулярное выражение.
https://regex101.com/r/iEzw33/1
Расширен
A
(?: achen | ugsburg )
| B
(?:
a
(?: den-Württemberg | varia | yern )
| er
(?: gisch [ ] Gladbach | lin )
| ielefeld
| o
(?: chum | nn | ttrop )
| r
(?:
a
(?: ndenbur | unschwei )
g
| eme
(?: rhave )?
n
)
)
| C
(?: hemnitz | ologne )
| D
(?:
armstadt
| eutsch
| ortmund
| resden
| uisburg
| üsseldorf
)
| E
(?:
r
(?: furt | langen )
| ssen
)
| F
(?:
r
(?: ankfurt | eiburg )
| ürth
)
| G
(?:
e
(?: lsenkirche | rma )
n
| öttingen
)
| H
(?:
a
(?:
gen
| lle
| m
(?: burg | m )
| n
(?: n )?
over
)
| e
(?:
i
(?: delberg | lbronn )
| rne
| ssen?
)
| ildesheim
)
| Ingolstadt
| Jena
| K
(?:
a
(?: rlsruhe | ssel )
| iel
| oblenz
| refeld
| öln
)
| L
(?:
e
(?: ipzig | verkusen )
| ower [ ] Saxony
| udwigshafen
| übeck
)
| M
(?:
a
(?: gdeburg | inz | nnheim )
| ecklenburg-Vorpommern
| oers
| unich
| önchengladbach
| ü
(?:
lheim
| n
(?: chen | ster )
)
)
| N
(?:
euss
| iedersachsen
| or
(?: drhein-Westfalen | th [ ] Rhine- )
| uremberg
| ürnberg
)
| O
(?:
berhausen
| ffenbach
| ldenburg
| snabrück
)
| P
(?: aderborn | forzheim | otsdam )
| R
(?:
e
(?:
cklinghausen
| gensburg
| mscheid
| utlingen
)
| h
(?: einland-Pfalz | ineland-Palatinate )
| ostock
)
| S
(?:
a
(?:
a
(?:
le
| r
(?: brücken | land )
)
| chsen
(?: -Anhalt )?
| lzgitter
| xony
(?: -Anhalt )?
)
| chleswig-Holstein
| iegen
| olingen
| tuttgart
)
| T
(?:
h
(?: uringia | üringen )
| rier
)
| Ulm
| W
(?:
estphalia
| iesbaden
| olfsburg
| uppertal
| ürzburg
)
Позволяет проверить скорость:
Regex1: A(?:achen|ugsburg)|B(?:a(?:den-Württemberg|varia|yern)|er(?:gisch[ ]Gladbach|lin)|ielefeld|o(?:chum|nn|ttrop)|r(?:a(?:ndenbur|unschwei)g|eme(?:rhave)?n))|C(?:hemnitz|ologne)|D(?:armstadt|eutsch|ortmund|resden|uisburg|üsseldorf)|E(?:r(?:furt|langen)|ssen)|F(?:r(?:ankfurt|eiburg)|ürth)|G(?:e(?:lsenkirche|rma)n|öttingen)|H(?:a(?:gen|lle|m(?:burg|m)|n(?:n)?over)|e(?:i(?:delberg|lbronn)|rne|ssen?)|ildesheim)|Ingolstadt|Jena|K(?:a(?:rlsruhe|ssel)|iel|oblenz|refeld|öln)|L(?:e(?:ipzig|verkusen)|ower[ ]Saxony|udwigshafen|übeck)|M(?:a(?:gdeburg|inz|nnheim)|ecklenburg-Vorpommern|oers|unich|önchengladbach|ü(?:lheim|n(?:chen|ster)))|N(?:euss|iedersachsen|or(?:drhein-Westfalen|th[ ]Rhine-)|uremberg|ürnberg)|O(?:berhausen|ffenbach|ldenburg|snabrück)|P(?:aderborn|forzheim|otsdam)|R(?:e(?:cklinghausen|gensburg|mscheid|utlingen)|h(?:einland-Pfalz|ineland-Palatinate)|ostock)|S(?:a(?:a(?:le|r(?:brücken|land))|chsen(?:-Anhalt)?|lzgitter|xony(?:-Anhalt)?)|chleswig-Holstein|iegen|olingen|tuttgart)|T(?:h(?:uringia|üringen)|rier)|Ulm|W(?:estphalia|iesbaden|olfsburg|uppertal|ürzburg)
Completed iterations: 50 / 50 ( x 1000 )
Matches found per iteration: 110
Elapsed Time: 5.74 s, 5736.58 ms, 5736578 µs
Matches per sec: 958,759
Ух ты, миллион слов в секунду!