summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/immutable/StringLike.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/collection/immutable/StringLike.scala')
-rw-r--r--src/library/scala/collection/immutable/StringLike.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/library/scala/collection/immutable/StringLike.scala b/src/library/scala/collection/immutable/StringLike.scala
index 926fde4fe0..98f1b90866 100644
--- a/src/library/scala/collection/immutable/StringLike.scala
+++ b/src/library/scala/collection/immutable/StringLike.scala
@@ -162,6 +162,21 @@ self =>
if (toString.endsWith(suffix)) toString.substring(0, toString.length() - suffix.length)
else toString
+ /** Replace all literal occurrences of `literal` with the string `replacement`.
+ * This is equivalent to [[java.lang.String#replaceAll]] except that both arguments
+ * are appropriately quoted to avoid being interpreted as metacharacters.
+ *
+ * @param literal the string which should be replaced everywhere it occurs
+ * @param replacement the replacement string
+ * @return the resulting string
+ */
+ def replaceAllLiterally(literal: String, replacement: String): String = {
+ val arg1 = java.util.regex.Pattern.quote(literal)
+ val arg2 = java.util.regex.Matcher.quoteReplacement(replacement)
+
+ toString.replaceAll(arg1, arg2)
+ }
+
/**
* For every line in this string:
*