字符串文字和删除不需要的字符
我有一个关于删除不需要的字符的问题,或者从更好的意义上说,只保留某些字符。我偶然发现了一个叫做String的东西,我不明白它是如何帮助我实现目标的。我偶然发现了这个地方,但不知道如何使用它。字符串文字和删除不需要的字符
字符串“[^ \ p {阿尔法} - ']”可被用来匹配任何 字符,该字符不是字母,破折号,或撇号;您可能会发现 这个有用的使用时的replaceAll()
我明白的replaceAll()做,但是其他的事情我不明白,是这个小代码像[a-zA-Z]
,你可以在它使用和在哪里寻找更多的他们。所以我非常想做引号说什么,只保留字母和一些标点符号。
replaceAll()
使用正则表达式。
在单个帖子中有太多的解释,但我会解释一点。
这里有一个正则表达式:[^A-Za-z.?!]
-
[]
表示一个字符类。它将匹配其中一个包含的字符(由元字符修改)。 -
^
当这是char类的第一个字符时,它是一个元字符,意思是NOT。 -
A-Z
表示范围。这些ASCII/Unicode值之间的任何内容都将匹配 -
.
,?
,!
被视为文字(在其他上下文中,它们可以变成元字符)。
所以,正则表达式,如果引用,放在一个replaceAll()
将改变一切,这不是字母,.
,?
,或!
。
在replaceAll()
的第二个参数还接受一些特殊的正则表达式相关的字符,如$1
并不意味着字面$1
。
在使用$1
之前,您需要了解更多高级正则表达式事件(捕获组)。
当我将它放入replaceAll()时,是否将正则表达式放入引号中? – DurpBurger
@DurpBurger是的,你需要转义任何需要在字符串中转义的字符。当正则表达式需要自己逃跑时(意味着你需要逃脱逃跑),这是一种痛苦,所以我有时会将它粘贴到一个在线测试器中,以自动逃脱一切。 – Laurel
对于这你必须学习正则表达式...它谷歌它 –
“字符串文字”是引号内的任何东西。这个特定的字符串文字被用作_regular expression_或简称_regex_。谷歌“Java教程正则表达式”,你可以找出所有的代码是什么意思。或者访问http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html。 – ajb