[英]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.