[
https://issues.apache.org/jira/browse/TEXT-173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16945193#comment-16945193
]
Gary D. Gregory commented on TEXT-173:
--------------------------------------
Hi [~aunkrig],
I am not sure we need yet-another expression language here, especially since we
can use the Java Scripting framework already withing Apache Commons Text
through
{{org.apache.commons.text.lookup.StringLookupFactory.scriptStringLookup()}}.
Apache Commons also provides two other scripting components: Commons JEXL and
Commons BSF.
What are you trying to achieve that cannot be done through Commons JEXL,
Commons BSF, or the Java Scripting framework?
Gary
> Pattern.replaceAll() replacement string extended to Java-like expression
> syntax
> -------------------------------------------------------------------------------
>
> Key: TEXT-173
> URL: https://issues.apache.org/jira/browse/TEXT-173
> Project: Commons Text
> Issue Type: Improvement
> Reporter: Arno Unkrig
> Priority: Major
>
> I've developed a class that extends the {{Pattern.replaceAll()}} syntax from
> {{ "Hello $1 $2"}}
> to a simple, Java-like expression syntax, e.g.:
> {{ "m.group.toUpperCase()"}}
> Example client code:
> {{ // Parse the expression.}}
> {{ Expression expression = new ExpressionEvaluator(}}
> {{ "prefix", // <= This is "our" variable}}
> {{ "m" // <= Also declare variable "m", which will automatically
> be available}}
> {{ ).parse(}}
> {{ "prefix + new StringBuilder(m.group).reverse()"}}
> {{ );}}
> {{ // ...}}
> {{ // Create a match replacer with the actual variable values.}}
> {{ Function<Matcher, String> matchReplacer = ExpressionMatchReplacer.get(}}
> {{ expression,}}
> {{ Mappings.<String, Object>mapping("prefix", "pre-") // <= pass the
> value for variable "prefix"}}
> {{ );}}
> {{ // Now use the match replacer to substitute regex matches.}}
> {{ Matcher matcher = ...;}}
> {{ System.out.println(PatternUtil.replaceSome(matcher, matchReplacer));}}
> Would that be a neat extension to {{text.commons.apache.org}}?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)