[英]Remove leading special characters from multiline string
处理 XSS 漏洞,其中我要求仅删除所有前导特殊字符。 无需删除末尾或中间的特殊字符。 允许使用字母数字,但不能以特殊字符开头。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
public static void main(String args[]) {
String str= "**$*****Important****\n"
+ " document is not uploaded \n"
+ "%3Cscript%3E";
str = str.replaceAll("[^a-zA-Z0-9\\s]", " ");
System.out.println(str);
}
}
上面的代码给出的输出为:
重要的
但预期的输出是:
重要****文件未上传 3Cscript%3E
我怎样才能解决这个问题?
您需要进行三项更改:
^
将匹配锚定到字符串的开头。+
匹配多个特殊字符。""
而不是" "
替换匹配的子字符串: str = str.replaceAll("^[^a-zA-Z0-9\\s]+", "");
你可能需要
str = str.replaceAll("(?m)^[^a-zA-Z0-9\\s]+", " ");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.