Search code examples
javaregexhamcrest

Hamcrest pattern to match a token


Let's suppose I have a token (406 chars length) that is generated dynamically, eg. of them:

1.

WqRj7U0czOLwNAKL9KVnBQR57NEnJbv77MYFkiiE20iTiOWHZV2N186VYT8-PjJSeHRLq9IvSwclR4zdk2jpJTjCIlTjlpfyiWs-tJ0taguM6BLNEoQenb2admoEw-cVlha6cGZqOklsPaBEZV-ASV5OE4Ig9dc77qsUs08vTKrYwwUjhjxDqsxyL7d0bvkrxHYaRL9EHMniAyd4j1pd5O89wC3hULYcHRRb6NSyZX1CnMBLySjgMFz3PZS8OEZoTv5KzaHrOCvwtSxmPEIYKJ2nLRY55LREyUkt6OLuo49hvoZPwZ5iiT-lJeqXNBELO1iyMHekCSZF7pZTu-XSKPT2TUC0GUy70rKJn55Xek3l3x4urb0tu78POejDFCP4RDJK7N0ms5_47gOE5DsQJg

2.

W2zTQG5BjRjV7d3MFuls6x0-2TwbFVeod-0TSquLWre17mZRq9vSXkEbVhH1Gdt2ldiNTtO2VDLT6cSi0mNm2zjAR3Er5RWfxx2CkKHzlawWL9tCua8Zr0F-OulyqFpO5WAI6Wunr3PH2aTCtM6GpLF2nKougAA_PZmmoo_DSNG5MkQd8btfizifWj2KFSNbwKzHcNVn0lDr_GoXsClQuciEXxgS947dkWlpwkMrFGyG-mG_yuIqP1SbOaz5jqfnDxbc1rWMBdqRjZYvckmiP5BYuu1jsIUHHcnxj682iB5BHuWEyXOGWFslj5zkkx7uSuhbigZT0HTHy1PIZa61NwuBTGlTllb2Idjzw0p2tkxGzgzRJSduXGOemEpvHuIYrqNCqnkmkfhfHmSZKhHgFQ

3.

97oThwfU1csWiwfi2LoDp5f90ycaq2H2sldGnbZioIbXnzylPT5UIpbyBrN3uNQQPeDQt0O7isFfNKQNWKklt9OwZgooVeM2jzz7-5rAA2fsiGHMStR2yfnwkYB1mT7XOrUpbmdUqhnXoz5gZCvCQnQof4S0R8V4UzEouRDqRJ4Pb7ICIu2mnUKaI9Ph80Kv_nILPEc3Lq-dmwVsiIvqve3R_pxrMAyock0IdFMQTGlZwsiSgbw17KRMRb55wNzFseP4PD_fXDXnwXOfMT-xhurh-by4T1YrE2F4lXiwv5GQm5RF8rJ2Ghol6eBhwZI-ijJipPaaRuYyWABXE22ak29Dq8HFRzvdfKfx0IUs7_dZLNkHuigmNKakaCCpWrvQg3GuFSEhgkybN3DphlsyaQ

I am trying to validate this through hamcrest with a regex, but I can't get it working and I do know that with a simple regex it would be a [\w\W]+ and it would match it, but hamcrest somehow after compiling it gives this \[\w\W\]+ and of course it won't work. This is a existing functionality and I need to adjust it for new set of tests, so using another libraries won't be a good idea.

By the way, I searched for a good documentation on this and could not find something about patterns for matching strings withing a regex in hamcrest, only with Java code, but this isn't what I need. So would be great if someone will point me in the right direction on writing the correct pattern.


Solution

  • You need to add an escape for the character class since hamcrest tries to escape it otherwise:

    \\[\\w\\W\\]+
    

    — without escaping the square brackets the result would be:

    \[\W\w\]+