Skip to content

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

@j-magnolia

Description

@j-magnolia

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
    [auth:(anon):lower]:[year:lower]:[shorttitle:regex(":+",".")]
    
    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
    [auth:(anon):lower]:[year:lower]:[shorttitle:regex("[:]+",".")]
    
    or
    [auth:(anon):lower]:[year:lower]:[shorttitle:regex("[^A-Za-z0-9]+",".")]
    
  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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions