0

我创建了这样的正则表达式:

^[0-9][0-9][A-Z][A-Z][a-z]_([0-9]{1,10})_([0-9]{1,11})_([0-9]{1,11})$

它应该给我的值范围从 01BRa_1_1_1 到 99BRz_9999999999_99999999999_99999999999

我的问题是我需要从 _number_number_number 中排除值 0 并从数字 1 开始。一直在尝试不同的表达式,但找不到正确的表达式。

如果有人知道如何解决这个帮助会很好。谢谢。

目标是消除 0_0_0 和 00_00_00 以及 000_000_000 以及 0 是第一个数字的所有情况,因此这三个字段的第一个组合将是 1_1_1。

我在 Java 中使用它(回复一条评论),但看不到这或多或少的相关性,这只是一个模式。

解决了这个问题:

^[0-9][0-9][A-Z][A-Z][a-z]_([1-9][0-9]{0,9})_([1-9][0-9]{0,10})_([1-9][0-9]{0,10})$
4

1 回答 1

0

如果您的目标是消除等于 0 的值(0、00、000 等),那么这样的表达式可能会起作用:

^[0-9][0-9][A-Z][A-Z][a-z]_(?!0+_)([0-9]{1,10})_(?!0+_)([0-9]{1,11})_(?!0+$)([0-9]{1,11})$

当然,这将取决于您的正则表达式引擎是否支持可变长度零宽度断言(又名“前瞻”)。了解您使用的是哪种口味会有所帮助。(来自工具提示:“请同时包含一个标签,指定您正在使用的编程语言或工具。”

如果您的目标是消除以 0、(0、01、001 等)开头的任何内容,那么这样的表达式可能会起作用:

^[0-9][0-9][A-Z][A-Z][a-z]_([1-9][0-9]{0,10})_([1-9][0-9]{0,10})_([1-9][0-9]{0,10})$
于 2013-03-05T13:53:35.263 回答