gpt4 book ai didi

java - 需要有关正则表达式的一些帮助

转载 作者:行者123 更新时间:2023-11-30 06:12:36 26 4
gpt4 key购买 nike

我需要帮助创建一个正则表达式来检查输入是否正确

  1. 17 个字符长
  2. 不得包含特殊字符或空格
  3. 不得包含 I、O 或 Q
  4. 仅允许使用大写字母。

对于第一个 17 个字符的部分,我已经使用 if(str.length() == 17) 解决了它(根据硬件要求)。 ,并且我已经了解如何执行排除字符部分。这是我到目前为止所拥有的

String regEx = "\\S^[I,O,Q][A-Z]"

但这不起作用。我对如何让它发挥作用有点困惑。我知道\\S意味着它不能包含任何空格。 ^意味着它应该排除 I,O,Q (或者我认为应该如此,不确定),然后 [A-Z]意味着它应该全部大写。

任何人都可以帮我弄清楚如何正确地为此创建正则表达式吗?

旁注,我查看了与删除特殊字符相关的其他正则表达式问题,但它只排除了一些 $<>@& ,我如何才能排除所有这些?

谢谢

最佳答案

您可以使用此正则表达式:

[A-HJ-NPR-Z]{17}

我创建了一个长度为 17 的随机单词列表,因此您可以看到此正则表达式的实际效果:

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

尝试自己添加更多随机单词

<小时/>

Side notes, I've looked at other regEx questions relating to removing special characters, but it only excludes a few $<>@&, how do I get it to exclude all of them?

使用这个正则表达式

[A-HJ-NPR-Z]{17}

您仅匹配大写字母,I、O、Q 除外...排除的任何其他字符

<小时/>

请注意,您可能需要用其他内容包围正则表达式...这取决于您查找这些单词的上下文;例如:

如果您想匹配该模式,但每行只有一个单词,你可以使用:

^[A-HJ-NPR-Z]{17}$

请参阅此处:https://regex101.com/r/w7zMEY/2

如果你想在一行的“随机”位置匹配该模式,但只有当它没有被其他大写字母包围时,您才可以使用:

(?<=[^A-Z])[A-HJ-NPR-Z]{17}(?=[^A-Z])

请参阅此处:https://regex101.com/r/w7zMEY/3

关于java - 需要有关正则表达式的一些帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49907925/

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