我想要一个可以像这样转换这个简单句子的java正则表达式:
1) I am a (happy) person!!!
到
I am a happy person.
即。忽略所有数字和特殊字符,但忽略单词之间的空格。
我现在正在使用这个正则表达式:
("\\P{L}", "")
但它提供的输出如下:
Iamahappyperson
感谢您的帮助!!
答案 0 :(得分:3)
使用此正则表达式[^\p{Alpha} ]
\p{Alpha}
字母字符:[\p{Lower}\p{Upper}]
[^\p{Alpha} ]
除字母和空格外的所有字符以下是如何使用它:
System.out.println("1) I am a (happy) person!!!".replaceAll("[^\\p{Alpha} ]", ""));
如果您想保留unicode字母字符,请在上述正则表达式的开头添加(?U)
。在(?U)
开启UNICODE_CHARACTER_CLASS
标记
答案 1 :(得分:0)
System.out.println("I am a (happy) person!!!".replaceAll("[^\\p{L}\\p{Z}]", ""));
打印出“我是一个快乐的人”
答案 2 :(得分:-1)
尝试使用此方法
String new_string = "I am a (happy) person!!!".replaceAll("[^a-zA-Z ]+","");
代码:
public class HelloWorld
{ public static void main(String[] args)
{
String new_string = "I am a (happy) person!!!".replaceAll("[^a-zA-Z ]+","");
System.out.print(new_string);
}
}
输出:我是一个快乐的人
答案 3 :(得分:-1)
[a-zA-Z\d\s]
如果你想保留字母数字和空格。
[a-zA-Z\s]
仅适用于alpha和space。