[
https://issues.apache.org/jira/browse/LANG-373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542169
]
Sebb commented on LANG-373:
---------------------------
The end of the switch statement should be commented to indicate that the
drop-thru is intentional:
case '$' :
buffer.append("\\");
// Drop through
default :
buffer.append(chrs[i]);
But is the method needed? Doesn't regex support the \Q and \E modifiers?
By the way, ( and ) and | are also special to regexes. / is *not* special.
> Quote regexp
> ------------
>
> Key: LANG-373
> URL: https://issues.apache.org/jira/browse/LANG-373
> Project: Commons Lang
> Issue Type: New Feature
> Reporter: Henri Yandell
> Fix For: LangTwo 1.0
>
>
> Once Lang is 1.4 dependent; add this from String Taglib's StringW (suitably
> changed for Java's syntax):
> /**
> * Quote a string so that it may be used in a regular expression
> * without any parts of the string being considered as a
> * part of the regular expression's control characters.
> */
> static public String quoteRegularExpression(String str) {
> // replace ? + * / . ^ $ as long as they're not in character
> // class. so must be done by hand
> char[] chrs = str.toCharArray();
> int sz = chrs.length;
> StringBuffer buffer = new StringBuffer(2*sz);
> for(int i=0; i<sz; i++) {
> switch(chrs[i]) {
> case '[' :
> case ']' :
> case '?' :
> case '+' :
> case '*' :
> case '/' :
> case '.' :
> case '^' :
> case '$' :
> buffer.append("\\");
> default :
> buffer.append(chrs[i]);
> }
> }
> return buffer.toString();
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.