gpt4 book ai didi

java - 比较字符串时忽略正则表达式

转载 作者:行者123 更新时间:2023-11-30 03:54:20 27 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
How to escape text for regular expression in Java

我有一个问题,我的用户有便盆嘴......

具体来说,我的 Android 应用程序使用 Google 语音搜索来返回语音结果,如果用户将设置应用到“阻止冒犯性词语”,它将以“g* a***”的形式返回“走开”

当试图确定用户所说的内容时,我通常会使用常见的匹配,例如:

if(voiceResult.matches(someCommand)) { //do something

如果用户选择说脏话,那么我会得到以下错误:

java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index X

我真的不能要求我所有的用户要么不发誓要么关闭过滤器,特别是从我的测试来看,谷歌语音搜索似乎有一个肮脏的想法并且经常在最随机的中间返回脏话句子!

所以,我对如何处理这种可能性有点迷茫......我一直在寻找一种在字符串中“忽略正则表达式”的方法,但我画了一个空白,我不知道如何我会动态转义字符串中包含的任何 * ......

目前,我唯一的选择似乎是检测“*”,然后礼貌地要求他们不要发誓或移除过滤器!

欢迎提出建议!除非你认为他们应该因为他们的无礼行为而受到强制关闭......

请注意:'go away' 当前未被过滤 - 这是一个示例....

编辑:我确认重复语音请求的最简单示例正则表达式:

String userWords = "g* a***"

if(userWords.matches(userWords)) { // Then go on to compare userWords with other strings

编辑2:

    String goAway = "g* a***";

String goAway1 = Pattern.quote(goAway);
String goAway2 = Pattern.quote(goAway);

if (goAway1.matches(goAway2)) { \\ do something

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