gpt4 book ai didi

regex - 过滤特殊字符的正则表达式不起作用

转载 作者:行者123 更新时间:2023-12-02 03:44:37 24 4
gpt4 key购买 nike

我正在搜索一个正则表达式,我可以用它来检查用户输入是否包含指定列表中的特殊字符。

以下是我尝试编写的正则表达式不允许使用的特殊字符:^[`~!@#$%^&*()_+={}\[\]|\\:;“’<,>.?๐฿]*$

我去了https://regex101.com/我期望以下输入能够匹配,但这不是为什么:

127 elmer road ??<>()

所以在 android java(但可以是任何)中,我编写了以下函数,但它也总是返回 true 。我如何过滤所有这些特殊字符。我想要一个如果给定字符串不匹配则返回 true 的函数。

  public boolean isValid( EditText et) {
String string = et.getText().toString();
boolean isValid = true;

final Pattern sPattern
= Pattern.compile("^[`~!@#$%^&*()_+={}\\[\\]|\\\\:;“’<,>.?๐฿]*$");

isValid= !sPattern.matcher(string).matches();


return isValid;
}

更新:我也尝试了以下操作:

enter image description here

最佳答案

I want a function that returns true if a given string does NOT match.

您可以取消字符集。 (请注意方括号内的 ^ 符号)。对于不包含任何这些特殊字符的字符串,这将返回 true。

^[^`~!@#$%^&*()_+={}\[\]|\\:;“’<,>.?๐฿]*$

https://regex101.com/r/CqtqoK/1

关于regex - 过滤特殊字符的正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47216846/

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