Wpis z mikrobloga

@Avario: Tak.
Przy 3 traktuje x jakby go miał użyć \x
Przy 2\ normalnie się kompiluje, ale przy użyciu jest:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal hexadecimal escape sequence near index 2
\x([a-zA-Z0-9]){2}

Przy 3\:
Error:(24, 47) java: illegal escape character
@hamster151: No kurde nie wierzę xD
Z 4 działa idealnie, ale nie rozumiem dlaczego tam powinny być 4... Znaczy, no dobra żeby użyć backslasha to 2 backslashe, więc żeby użyć slasha jako slash to 4 backslashe? xD
Swoją drogą czemu dwa problemy?
Tu jest akurat specyficzna sytuacja którą muszę po prostu zapamiętać, ale ogólnie to nie miałem większych problemów nigdy z używaniem regexów.
@Wyrewolwerowanyrewolwer: sam kiedyś miałem podobny problem, generalnie chodzi o to że czasem jak wpiszesz z łapy 4 backslashe (np jako argument), to najpierw kompilator escapuje 2 razy po 2 backlashe, a potem parser regexpa te już wyescapowane 2 backslashe escapuje do jednego ostatecznego. Wiem że nie umiem tłumaczyć i nie wiem czy dobrze mówię, ale to tak w skrócie ( ͡° ͜ʖ ͡°)
@Wyrewolwerowanyrewolwer: Rzecz jest w zasadzie prosta i znana we wszystkich jezykach. Masz tutaj dwa poziomy escapowania. Najpierw jest escapowanie stringow normalnie w jezyku programowania. Stad dziala np. "\n" jako nowa linia, a "\" zostawia w efekcie pojedynczy "\".

Drugi poziom to regex, w ktorym niestety tez "\" sluzy do escapowania. W efekcie jest tak jak napisal @hamster151:

"\" -> javac -> "\" -> regex -> "\"


W wielu jezykach programowania