我需要帮助创建一个regEx来检查输入是
对于第一个,17个字符的部分,我已经使用if(str.length() == 17)
解决了它(根据硬件要求),并且我有点理解如何排除字符部分。这是我到目前为止所拥有的
String regEx = "\\S^[I,O,Q][A-Z]"
但这不起作用。我有点难过如何让它发挥作用。我知道\\S
意味着它不能包含任何空格。 ^
表示它应该排除I,O,Q
(或者我认为它应该,不确定),然后[A-Z]
意味着它应该都是大写字母。
任何人都可以帮我弄清楚如何正确地为此制作regEx吗?
附注,我已经查看了有关删除特殊字符的其他regEx问题,但它只排除了一些$<>@&
,如何排除所有这些问题?
由于
答案 0 :(得分:1)
您可以使用此正则表达式:
[A-HJ-NPR-Z]{17}
我创建了一个长度为17的随机单词列表,因此你可以看到这个正则表达式:
https://regex101.com/r/w7zMEY/1
尝试自己添加更多随机单词
附注,我已经查看了有关删除的其他regEx问题 特殊字符,但它只排除了几个$&lt;&gt; @&amp ;,我如何获得它 排除所有这些?
使用此正则表达式
[A-HJ-NPR-Z]{17}
你只匹配大写字母,除了I,O,Q ...... 任何其他被排除在外的字符
请注意,您可能需要用其他内容包围正则表达式... 这取决于你正在寻找这些词语的背景;例如:
如果你想匹配那个模式,但每行一个单词, 你可以使用:
^[A-HJ-NPR-Z]{17}$
见这里:https://regex101.com/r/w7zMEY/2
如果你想匹配那个模式,那就是随机的&#39;在一条线上, 但只有当它没有被其他大写字母包围时,你才可以使用:
(?<=[^A-Z])[A-HJ-NPR-Z]{17}(?=[^A-Z])