具有多个条件的正则表达式
本文关键字:正则表达式 条件 | 更新日期: 2023-09-27 18:30:32
我正在尝试编写一个用于检查数字的正则表达式。
我应该能够确定以下内容:
- 999 99
- ,99 99
- ,99
- 99 9/9
但不是以下的99M,99BN,99$。
所以我认为这可能会起作用: string rule1 = @"'b[0-9]+(?(.|,|'n){0,1}[0-9]+)'b";
[0-9]+
第一部分说:我需要 1 位或更多位数字。
(?(.|,|'n){0,1}[0-9]*)
在第二部分中,我打算表达一个条件:
出现在第一部分之后,那么我需要在点、逗号或空格之后出现一个或多个数字。但是由于我对正则表达式了解不多,所以我被困住了并得到了运行时异常。
我不太确定您要如何处理最后一种情况,因为正如我在评论中所说,您的示例中有一个空格。但假设这应该是换行符,我相信这样的事情应该有效。
('b'd+('.|,|'/)?'d+'b)[^$]
细分:
(
'b Word break
'd+ Any digit character (equivalent to your [0-9]), matched one or more times
('.|,|'/)? A period (escaped), comma, or slash (escaped), matched zero or one time.
'd+ Any digit character (equivalent to your [0-9]), matched one or more times
'b Word break
)
[^$] Avoid the last case, of 99$
我已经在这里尽可能地测试了这一点。