Regex 在scala中搜索和替换字符串中的特殊字符
在scala中,我有一个字符串,需要将Regex 在scala中搜索和替换字符串中的特殊字符,regex,scala,pattern-matching,Regex,Scala,Pattern Matching,在scala中,我有一个字符串,需要将%23替换为#,如下所示: 从https://bucket_name.s3.amazonaws.com/scripts/%23%23%23ENVIRONMENT_NAME%23%23%23/abc/template_abc_windows_%23%23%23ENVIRONMENT_NAME%23%23%23.zip?X-Amz安全令牌=FQOGZXIVYXDZEOGHSFGGHGKJKJKLJ 到https://bucket_name.s3.amazonaw
%23
替换为#
,如下所示:
从https://bucket_name.s3.amazonaws.com/scripts/%23%23%23ENVIRONMENT_NAME%23%23%23/abc/template_abc_windows_%23%23%23ENVIRONMENT_NAME%23%23%23.zip?X-Amz安全令牌=FQOGZXIVYXDZEOGHSFGGHGKJKJKLJ
到<代码>https://bucket_name.s3.amazonaws.com/scripts/###ENVIRONMENT_NAME###/abc/template_abc_windows_###ENVIRONMENT_NAME###.zip?X-Amz安全令牌=FQOGZXIVYXDZEOGHSFGGHGKJKJKLJ
我使用了下面的正则表达式和逻辑进行替换,但得到的错误如下:
java.lang.IllegalStateException: No match found
代码:
非常感谢您的帮助。谢谢。也许您可以使用
String.replaceAll
val url = "https://bucket_name.s3.amazonaws.com/scripts/%23%23%23ENVIRONMENT_NAME%23%23%23/abc/template_abc_windows_%23%23%23ENVIRONMENT_NAME%23%23%23.zip?X-Amz-Security-Token=FQoGZXIvYXdzEOghsfgdghgkjkjjklj"
url.replaceAll("%23", "#")
string.replaceAll(“%23”,“#”)这将替换第一个
%23%
,结果url如下所示:https://bucket_name.s3.amazonaws.com/scripts/#23%23ENVIRONMENT_NAME#23%23/abc/template_abc_windows_#23%23ENVIRONMENT_NAME#23%23.zip?X-Amz安全令牌=FQoGZXIvYXdzEO
。所以我做了这样的事情:val originalURL=”https://bucket_name.s3.amazonaws.com/scripts/%23%23%23ENVIRONMENT_NAME%23%23%23/abc/template_abc_windows_%23%23%23ENVIRONMENT_NAME%23%23%23.zip?X-Amz安全令牌=FQoGZXIvYXdzEO“val replacedURL=originalURL.replaceAll(“%23%23%23”,“#####”)
这起作用了。谢谢@Krzysztof AtłasikYes,很抱歉,我有打字错误。现在更正了。
val url = "https://bucket_name.s3.amazonaws.com/scripts/%23%23%23ENVIRONMENT_NAME%23%23%23/abc/template_abc_windows_%23%23%23ENVIRONMENT_NAME%23%23%23.zip?X-Amz-Security-Token=FQoGZXIvYXdzEOghsfgdghgkjkjjklj"
url.replaceAll("%23", "#")