java正则表达式在我的简单例子中

sr4lhrrt  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(242)

我想有一个正则表达式来验证字符串的格式是否以#开头,后跟随机数(长度是无限的),数字之间的空格也是任意的。
例如,#31 5 2 0000 12
我想出了正则表达式 ^[\\#][0-9]$ ,但似乎是错的。有人能帮我吗?

wztqucjr

wztqucjr1#

如果您至少需要一个数字,请选中此项

^#\s*\d[\d\s]*$

开始
搞砸
可选空间
数字
可选数字和空格
结束

798qvoo8

798qvoo82#

^#(\d+\s?)$
接受#,#15,#2 14 52。。。如果要接受多次空格一起更改?带着

8yoxcaq7

8yoxcaq73#

这是 normal* (special normal*)* 图案:

^#\d+(\s+\d+)*$

# as a Java string:

"^#\\d+(\\s+\\d+)*$"

注意:如果您使用 .matches() ,这在java中确实是一个错误的名称,您可以删除 ^ 以及 $ 因为它们将自动插入。java中的实模式匹配是通过 .find() (哪个 String 没有,但是哪个 Matcher 有)
注2:这将不允许尾随空格;如果可以有尾随空格,请更改为:

^#\d+(\s+\d+)*\s*$

# as a Java string:

"^#\\d+(\\s+\\d+)*\\s*$"
mwkjh3gx

mwkjh3gx4#

^[\\#][0-9]$ 将匹配一个数字,后跟 # 签字。你需要

^#\d+(\s+\d+)*$

posix也允许任何其他语言字符。

^#[[:digit:]]+([[:space:]]+[[:digit:]]+)*$

注意:这是一个有效的正则表达式。您可能需要进行一些调整,以使其与java风格兼容。

相关问题