Java 字符串文字和删除不需要的字符

Java 字符串文字和删除不需要的字符,java,string-literals,replaceall,Java,String Literals,Replaceall,我有一个关于删除不需要的字符的问题,或者在更好的意义上,只保留某些字符。我偶然发现了一种叫做stringliteral的东西,我不明白它如何帮助我实现我的目标。我以前在某个地方偶然发现了这个,但不知道如何使用它 字符串文字“[^\p{Alpha}-']”可用于匹配任何 非字母、破折号或撇号的字符;你会发现 这在使用replaceAll()时非常有用 我了解replaceAll()的功能,但我不了解的是[a-zA-Z]等小代码,您可以在其中使用它们,以及在哪里可以找到更多它们。所以我很想按照引号里

我有一个关于删除不需要的字符的问题,或者在更好的意义上,只保留某些字符。我偶然发现了一种叫做stringliteral的东西,我不明白它如何帮助我实现我的目标。我以前在某个地方偶然发现了这个,但不知道如何使用它

字符串文字“[^\p{Alpha}-']”可用于匹配任何 非字母、破折号或撇号的字符;你会发现 这在使用replaceAll()时非常有用


我了解replaceAll()的功能,但我不了解的是
[a-zA-Z]
等小代码,您可以在其中使用它们,以及在哪里可以找到更多它们。所以我很想按照引号里说的做,只保留字母和一些标点符号。

您描述的过程简称为正则表达式或正则表达式。它是一个用许多编程语言(包括Java)实现的工具,允许您用一行代码处理字符串,否则会更加复杂和烦人

我建议使用此链接进行更深入的讨论。

replaceAll()
使用正则表达式

在一篇文章中有太多的东西要解释,但我会解释一点

这里有一个正则表达式:
[^a-Za-z.?!]

  • []
    表示字符类。它将匹配其中一个包含的字符(由元字符修改)
  • ^
    当这是char类中的第一个字符时,它是一个元字符,表示不是
  • A-Z
    表示一个范围。这些ASCII/Unicode值之间的任何内容都将匹配
  • 被视为文本(在其他上下文中,它们可以成为元字符)
因此,如果引用regex并将其放入
replaceAll()
中,则会更改所有非字母、
的内容


replaceAll()
中的第二个参数也接受一些与正则表达式相关的特殊字符,例如
$1
并不是字面上的
$1


在使用
$1

之前,您需要了解更高级的正则表达式(捕获组)。为此,您需要学习正则表达式。请尝试谷歌itA“字符串文字”是引号内的任何内容。这个特殊的字符串文字用作正则表达式,简称regex。谷歌“java教程正则表达式”,你可以找到所有代码的含义。或者访问。当我将正则表达式放入replaceAll()时,是否将其置于引号中?@DurpBurger是的,您需要转义需要在字符串中转义的任何字符。当正则表达式需要\来进行自身的转义时(意味着需要转义),这是一种痛苦,因此我有时会将它粘贴到一个在线测试程序中,自动转义所有内容。