gpt4 book ai didi

java - 我如何在 Java 中过滤掉除单词、数字和一些符号之外的所有内容?

转载 作者:行者123 更新时间:2023-11-29 07:15:40 24 4
gpt4 key购买 nike

所以我们有一个数据库列,几乎可以包含任何内容。 Unicode、数字、单词等

但是,我们需要将该数据发送到外部服务,他们对接受的内容非常严格。基本上只有英文,单词,数字等。

我们无法更改此服务的要求,因此我们需要在发送给用户之前过滤用户发送给我们的内容。

我的 RegEx 技能很弱。这是我们需要的:

字符 [a-zA-Z]数字 [0-9]以下符号:!@#$%^&*()-_=+;:',./?\

就是这样。当然,它可以是任意组合。我们只是想确保没有遗漏任何未列在那里的内容。

如能提供有关如何使用 Java 构建此过滤器的任何帮助,我们将不胜感激。

顺便说一句,我假设相同的 RegEx 模式适用于 JavaScript?

编辑

这是我的例子(使用 Edmastermind29):

public static void main(String[] args) {

String pattern = "^[A-Za-z0-9!@#$%^&*()-_=+;:',./?\\]";
String text = "Hello, I need everything in this string except the { or }";

Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);

// here, I need everything but the {}.
// so I should have: Hello, I need everything in this string except the or

}

好的,我想出了如何转义该字符串。但是,我如何获得未过滤掉的所有内容?

最佳答案

您需要迭代每个匹配的子序列并连接字符串。对于给定的示例,解决方案如下所示:

public static void main( String[] args ) {
String pattern = "[A-Za-z0-9!@#$%^&*()-_=+;:',./?\\ ]*";
String text = "Hello, I need everything in this string except the { or }";

Pattern p = Pattern.compile( pattern );
Matcher m = p.matcher( text );
StringBuilder sb = new StringBuilder();
while( m.find() )
{
sb.append( m.group() );
}
String result = sb.toString();
System.out.println( "Result: '" + result + "'" );
}

关于java - 我如何在 Java 中过滤掉除单词、数字和一些符号之外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9787341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com