У меня тоже было такое же исключение. Я сделал следующие изменения в файле web.xml
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.moxy.json.MoxyFeature;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
и изменил трикотаж с 2,7 до 2,9. Я не знаю, что изменило это решение 2.
Вот что-то, что проходит все, кроме 2 ваших тестов.
val txt = Vector("Alpha USD" // -> USD
,"Alpha_US$" // _> US$
,"Alpha($)" // -> $
,"Alpha_$" // -> X desired but $ found
,"Alpha{USD}" // -> USD
,"Alpha(USDOCOLAND}" // -> X
,"Alpha USD" // -> USD
,"USD Alpha" // -> USD
,"Alpha USD USD" // -> USD
,"USD" // -> USD
,"Alpha USD$" // -> X desired but USD found
)
val re = """(US[D$]|\$)(?:\W|$)""".r.unanchored
txt.map{
case re(a) => a
case _ => "X"
}
В будущем, если вы хотите, чтобы люди помогали вам, опубликуйте тестовый код в формате, который можно легко скопировать и реализовать.