gpt4 book ai didi

java - 正则表达式需要一个字母和一个非字母且没有空格

转载 作者:行者123 更新时间:2023-11-29 08:20:26 25 4
gpt4 key购买 nike

我想在 Java 中创建一个正则表达式以匹配至少 1 个字母和 1 个非字母(可以是除 A-Za-z 之外的任何字符)并且没有空格。

下面的正则表达式部分正确:

^([A-Za-z]{1,}[^A-Za-z]{1,})+$

匹配aaaa7777但不匹配 777aaaaa。

如有任何帮助,我们将不胜感激。

最佳答案

您的正则表达式隐式假定您要匹配的字符的顺序。正则表达式表示一个字母必须出现在一个非后者之前。但是,您希望字母和非字母以任意顺序出现,因此您需要考虑这两种情况。另请注意,它应该是 [^\sa-zA-Z] 而不是 [^a-zA-Z] 因为您不允许使用空格。

(?:[a-zA-Z][^\sa-zA-Z]|[^\sa-zA-Z][a-zA-Z])

在开头和结尾,任何非空格字符都是允许的,所以:

^\S*(?:[a-zA-Z][^\sa-zA-Z]|[^\sa-zA-Z][a-zA-Z])\S*$

关于java - 正则表达式需要一个字母和一个非字母且没有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59355349/

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