Java 从字符串中删除特殊字符
大家好,我试着从字符串中删除特殊字符和数字,每件事都很好,但是字符“h”已经用前缀和后缀打印出来了,我不知道为什么打印出来了,告诉我我犯了什么错误Java 从字符串中删除特殊字符,java,regex,Java,Regex,大家好,我试着从字符串中删除特殊字符和数字,每件事都很好,但是字符“h”已经用前缀和后缀打印出来了,我不知道为什么打印出来了,告诉我我犯了什么错误 String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>"; String str1 = str.replaceAll("[^\\p{L}\\p{M}]", " "); System.out.println(str1); 但是我有 h Hi buddy
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
String str1 = str.replaceAll("[^\\p{L}\\p{M}]", " ");
System.out.println(str1);
但是我有
h Hi buddy you did a Great job h
两个
h
s来自输入源中的
标记:
<h1>Hi buddy!!you @ $ did a Great job . <h1>
^ ^
| |
+ ------------- Here and here ----------+
嗨,伙计!!你做得很好。
^ ^
| |
+------这里和这里----------+
如果不想看到它们,请找到标记,并在调用
replaceAll
之前删除它们。一个快速的方法是在一个单独的replaceAll
调用中应用“
regex。它可以用来学习实验,但对于生产来说太脏了。如果需要可靠地执行此操作,请使用HTML解析器删除标记。这两个h
来自输入源中的
标记:
<h1>Hi buddy!!you @ $ did a Great job . <h1>
^ ^
| |
+ ------------- Here and here ----------+
嗨,伙计!!你做得很好。
^ ^
| |
+------这里和这里----------+
如果不想看到它们,请找到标记,并在调用
replaceAll
之前删除它们。一个快速的方法是在一个单独的replaceAll
调用中应用“
regex。它可以用来学习实验,但对于生产来说太脏了。如果需要可靠地执行此操作,请使用HTML解析器删除标记。如注释中所述,在删除除字母和标记以外的所有内容之前,应使用HTML解析器删除标记
如果您坚持使用regex删除标记,您可以说:
String str1 = str.replaceall("<[^>]*>", "").replaceAll("[^\\p{L}\\p{M}]", " ");
String str1=str.replaceall(“]*>”,“”)。replaceall(“[^\\p{L}\\p{M}]”,“”);
i、 e.删除…之前的标记。如注释中所述,在删除除字母和标记以外的所有内容之前,应使用HTML解析器删除标记 如果您坚持使用regex删除标记,您可以说:
String str1 = str.replaceall("<[^>]*>", "").replaceAll("[^\\p{L}\\p{M}]", " ");
String str1=str.replaceall(“]*>”,“”)。replaceall(“[^\\p{L}\\p{M}]”,“”);
i、 e.在使用此代码之前,请先删除标签。它会起作用的
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
String str1 = str.replaceAll("<[^>]+>", "");
String str2 = str1.replaceAll("[^\\p{L}\\p{M}]", " ");
System.out.println(str2);
String str=“嗨,伙计!!你@$做得很好。”;
字符串str1=str.replaceAll(“]+>”,“”);
字符串str2=str1.replaceAll(“[^\\p{L}\\p{M}]”,即“”);
系统输出打印项次(str2);
使用此代码。它会起作用的
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
String str1 = str.replaceAll("<[^>]+>", "");
String str2 = str1.replaceAll("[^\\p{L}\\p{M}]", " ");
System.out.println(str2);
String str=“嗨,伙计!!你@$做得很好。”;
字符串str1=str.replaceAll(“]+>”,“”);
字符串str2=str1.replaceAll(“[^\\p{L}\\p{M}]”,即“”);
系统输出打印项次(str2);
如果在一个空格中找到多个连续空格,则此操作将删除,删除标记并删除所有特殊字符
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
// String str1 = str.replaceAll("[^\\p{L}\\p{M}]", " ");
String str1 = str.replaceAll("<[^>]+>", "").replaceAll("[^\\p{L}\\p{M}]", "
").replaceAll("\\s+", " ");
System.out.println(str1);
如果在一个空格中找到多个连续空格,则此操作将删除,删除标记并删除所有特殊字符
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
// String str1 = str.replaceAll("[^\\p{L}\\p{M}]", " ");
String str1 = str.replaceAll("<[^>]+>", "").replaceAll("[^\\p{L}\\p{M}]", "
").replaceAll("\\s+", " ");
System.out.println(str1);
试试这个程序,它会有用的
public class StringFunction{
public static void main(String args[])
{
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
System.out.println(str.replaceAll("<[^>]+>", "").replaceAll("[^\\p{L}\\p{M}]", " "));
}
}
公共类StringFunction{
公共静态void main(字符串参数[])
{
String str=“嗨,伙计!!你@$做得很好。”;
System.out.println(str.replaceAll(“]+>”,”).replaceAll(“[^\\p{L}\\p{M}]”,”);
}
}
试试这个程序,它会工作的
public class StringFunction{
public static void main(String args[])
{
String str = "<h1>Hi buddy!!you @ $ did a Great job . <h1>";
System.out.println(str.replaceAll("<[^>]+>", "").replaceAll("[^\\p{L}\\p{M}]", " "));
}
}
公共类StringFunction{
公共静态void main(字符串参数[])
{
String str=“嗨,伙计!!你@$做得很好。”;
System.out.println(str.replaceAll(“]+>”,”).replaceAll(“[^\\p{L}\\p{M}]”,”);
}
}
你得到了你想要的东西。您正在删除除字母和标记以外的所有内容。@devnull是的,我正在删除除字母和标记以外的所有内容。请使用HTML解析器除去标记,然后删除标记。如上所述,h
正在打印,因为是您要求的。你要求保留这些信件,是吗?你得到了你所要求的。您正在删除除字母和标记以外的所有内容。@devnull是的,我正在删除除字母和标记以外的所有内容。请使用HTML解析器除去标记,然后删除标记。如上所述,h
正在打印,因为是您要求的。您要求保留这些字母,是吗?是否有其他方法可以删除html标记、特殊字符和数字。运算符有任何其他方法可以删除html标记、特殊字符和数字。operator@user3280500.replaceall(“]*>”,“”)
从字符串中删除标记,即它将删除
等等。第二部分就是你刚才所做的@user3280500.replaceall(“]*>”,“”)
从字符串中删除标记,即它删除
等等。第二部分就是你刚才所做的!抱歉,第一次使用你的代码我得到了以下输出嗨,伙计!!你@$做得很好。很抱歉,第一次使用你的代码我得到了以下输出嗨,伙计!!你做得很好。