JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.66k stars 2.59k forks source link

Key generator regex() function not handling character classes #6892

Closed jonathan-g closed 4 years ago

jonathan-g commented 4 years ago

Summary

the regex() operator in the citation key generator is not handling character classes ([<characters>]) correctly.

JabRef Version

JabRef version 5.1--2020-08-30--e023aa0 on Windows 10 10.0 amd64 with Java 14.0.2

Description

When the regular expression in the regex() operator includes a character class ([<characters>]), the operator returns an empty string instead of replacing matched expressions with the replacement string.

Steps to reproduce the behavior:

Consider this entry:

@Article{gilligan:2020:Wickedness.ManagingComplex,
  author       = {Gilligan, Jonathan M. and Vandenbergh, M. P.},
  date         = {2020},
  journaltitle = {Vanderbilt Law Review},
  title        = {Beyond Wickedness: Managing Complex Systems and Climate Change},
}
  1. Set the default citation key generator expression in Options/Preferences to

    and leave the generators for specific types blank.

  2. Regenerate the key. It gives the key as above: gilligan:2020:Wickedness.ManagingComplex,
  3. Now change set the default key generator expression in Options/Preferences to

    or

  4. Regenerate the key again. It gives gilligan:2020: (the title portion is empty).

When I look at the JabRef event log, it's empty.

k3KAW8Pnf7mkmdSMPHz27 commented 4 years ago

Thank you for the very detailed description @jonathan-g ! I'll look into this but I don't think the main issue is with the regex modifier.

@Siedlerchr , I believe this will be fixed in #6706 (because CitationKeyGenerator doesn't parse brackets correctly). This is the relevant test case in the PR that fails

I can add a PR for this particular issue anyway, since there should have been an error message in the log and without looking at it in more detail I don't know why there isn't.

Siedlerchr commented 4 years ago

@k3KAW8Pnf7mkmdSMPHz27 Is this issue now fixed?

k3KAW8Pnf7mkmdSMPHz27 commented 4 years ago

@Siedlerchr no, not yet. I have not published a branch for this issue yet