我正在尝试使用字符串。用regex替换all()
方法,只保留字母字符和['-\]
。我试图用一个空字符串替换每个既不是字母也不是上述字符的字符。
到目前为止,我已经尝试过这样的东西(在不同的变体中),它正确地保留字母,但替换了我想要保留的特殊字符:
current = current.replaceAll("(?=\\P{L})(?=[^\\'-_])", "");
你的正则表达式太复杂了。只需指定要保留的字符,并使用^
进行否定,因此[^a-z'.-]
表示“除此之外的任何内容”。
public class Replacer {
public static void main(String[] args) {
System.out.println("with 1234 &*()) -/.,>>?chars".replaceAll("[^\\w'_-]", ""));
}
}
你不需要向前看,只需要使用否定正则表达式:
current = current.replaceAll("[^\\p{L}'_-]+", "");
[^\\p{L}'.-]
将匹配任何非字母(unicode)或单引号、下划线或连字符的内容。
让它更简单:
current = current.replaceAll("[^a-zA-Z'_-]", "");
说明:将a
中的任何字符匹配到z
,a
中的任何字符匹配到z
,,
,
-
和replaceAll()
方法将用零替换任何匹配的字符。
测试输入:
“a_zE'R”-z4r@m“
Output:a_zE'R-zrm
问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪
问题内容: 有什么方法可以用捕获组的已修改内容替换正则表达式? 例: 我想用$ 1乘以3代替所有出现的情况。 编辑: 看起来好像出了点问题:( 如果我用 引发IllegalStateException:找不到匹配项 但 工作正常,但我不能更改$ 1 :( 问题答案: 要获得第一场比赛,请使用。之后,你可以用来引用此第一个匹配项,并将所有匹配项替换为第一个匹配值乘以3。 如果你想将每个匹配项替换为该
问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。
通过好奇心,有没有办法用Java Stream编写它?
Change is inevitable, except from vending machines. — Robert C. Gallagher Puppet 的 regsubst 函数提供了一种处理文本的简单方法, 用于在字符串中查找和替换,或者从字符串提取匹配的模式。 例如,我们通常需要对从 facter 或者从外部程序获得的数据做这样的处理。 在本例中将会看到如何使用 regsubst 提