我有一个任意长度的字符串类型列表,我需要确保列表中的每个字符串元素都是字母数字或数字,没有空格和特殊字符等- \ / _
。
接受的字符串示例包括:
J0hn-132ss/sda
Hdka349040r38yd
Hd(ersd)3r4y743-2\d3
123456789
不可接受的字符串示例包括:
Hello
Joe
King
等基本无话。
我目前正在使用stringInstance.matches("regex")
但不太确定如何编写适当的表达式
if (str.matches("^[a-zA-Z0-9_/-\\|]*$")) return true;
else return false;
true
对于不符合我提到的格式的单词,此方法将始终返回。
我用英语寻找的正则表达式的描述类似于:
任何字符串,其中字符串包含来自 (a-zA-Z AND 0-9 AND special characters)
OR (0-9 AND Special characters)
OR (0-9)
编辑:我想出了以下有效的表达方式,但我觉得它可能很糟糕,因为它不清楚或复杂。
表达方式:
(([\\pL\\pN\\pP]+[\\pN]+|[\\pN]+[\\pL\\pN\\pP]+)|([\\pN]+[\\pP]*)|([\\pN]+))+
我用这个网站来帮助我:http: //xenon.stanford.edu/~xusch/regexp/analyzer.html
请注意,我对正则表达式还是新手