Portál AbcLinuxu, 11. prosince 2025 21:36
. Dosavadni postup, ktery me napadl, by znamenal (mozna neznatelne) zpomaleni pro vsechny. A to pochopitelne nechci.
Takze diky za pochopeni, urcite se dockate. A mimochodem, teste se na novinky, na kterych po vecerech pracuji. (A dekujte me manzelce, ze ma takovou trpelivost
)
usmev = new RE("([\\:][-][)]+)");
smich = new RE("([\\:][-][D]([^a-zA-Z]|$))");
mrk = new RE("([;][-][)])");
smutek = new RE("([\\:][-][(])");
:.) :/) :0) :1) :2) :3) :4) :5) :6) :7) :8) :9) ::) :;) :<) :=) :>) :?) :@) :A) :B) :C) :D) :E) :F) :G) :H) :I) :J) :K) :L) :M) :N) :O) :P) :Q) :R) :S) :T) :U) :V) :W) :X) :Y) :Z) :[) :\) :]) :^) :_) :`) :a) :b) :c) :d) :e) :f) :g) :h) :i) :j) :k) :l) :m) :n) :o) :p) :q) :r) :s) :t) :u) :v) :w) :x) :y) :z) :{) :|) :}) :~)
:!( :"( :#( :$( :%( :&( :'( :(( :)( :*( :+( :,(
:.( :/( :0( :1( :2( :3( :4( :5( :6( :7( :8( :9( ::( :;( :<( :=( :>( :?( :@( :A( :B( :C( :D( :E( :F( :G( :H( :I( :J( :K( :L( :M( :N( :O( :P( :Q( :R( :S( :T( :U( :V( :W( :X( :Y( :Z( :[( :\( :]( :^( :_( :`( :a( :b( :c( :d( :e( :f( :g( :h( :i( :j( :k( :l( :m( :n( :o( :p( :q( :r( :s( :t( :u( :v( :w( :x( :y( :z( :{( :|( :}( :~(
V Pythonu, kterým jsem to generoval, se mi na uvedený regulární výraz matchne vždy jen jeden smajlík (ten správný).
"[-]" považuje za množinu všech znaků - co to skusit nahradit za "[\\-]"
Měl bych též návrh ohledně řešení smajlíků - co takle při vkládání příspěvku zautomatizovat to co dnes dělá Yeti - když je zaškrtnuto bez smajlíků tak jednoduše nahradit závorky a podobné znaky za entity?
usmev = new RE("(:-\\)+)");
smich = new RE("(:-D([^a-zA-Z]|$))");
mrk = new RE("(;-\\))");
smutek = new RE("(:-\\()");
Pozn. 1: Vzhledem k tomu, co to dělá s [-], nezaručuji funkčnost, použil jsem standardní rozšířené regulární výrazy.
Pozn. 2: Nepožírá to takhle za smíchem jeden znak? Co třeba (podle toho, jak to nahrazuješ)
smich = new RE("(:-D()([^a-zA-Z]|$)");
Chtělo by to možná zero-width negative look-ahead assertion... ale ty umí jen Perl (libpcre), Python, Vim, ... a asi 10 dalších věcí...
Pozn. 3: @#$%! odstranit nechtěné smajlíky v tomto příspěvku byl skutečně zážitek ;-)
. hmm, mas pravdu - ta tecka zmizela. Opravim to.
usmev = new RE("(:-\\))");
smich = new RE("(:-D)");
mrk = new RE("(;-\\))");
smutek = new RE("(:-\\()");
Když už někdo nedokáže napsat smajlíka bez chyby, tak ať ho radši nepíše vůbec. Nebo maximálně:usmev = new RE("(:-+\\))");
smich = new RE("(:-+D)");
mrk = new RE("(;-+\\))");
smutek = new RE("(:-+\\()");P.S.: Stejně si myslím, že nejlepší by bylo smajlíky úplně vypnout, protože skoro každý umí smajlíka přečíst a kdo ne, tak si holt zvykne. Vypnutí smajlíku individuálně přídává zbytečný kód navíc a ubírá výkonu.
Jak nad tim uvazuji, tak zpomaleni se projevi jen u prihlasenych uzivatelu a bude v radech desitek milisekund (jedno vyhodnoceni XPath trva asi 10 ms). Takze mozna uz zitra se splni vase velke prani.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.