我正在尝试编写用于检查数字的正则表达式。
我应该能够识别以下内容:
但不是以下99M,99BN,99 $。
所以我认为这可行:
string rule1 = @"\b[0-9]+(?(.|,|\n){0,1}[0-9]+)\b";
[0-9]+
第一部分说:我需要一个或多个数字。
(?(.|,|\n){0,1}[0-9]*)
在第二部分,我的目的是表达一个条件:
如果在第一部分之后出现一个点或逗号或空格,那么我需要在点,逗号或空格之后的一个或多个数字。但由于我对正则表达式了解不多,所以我遇到了运行时异常。
答案 0 :(得分:1)
我不确定你想如何处理最后一个案例,因为正如我在评论中所说,你的例子中有一个空格。但假设这应该是一个换行符,我相信这样的事情应该有用。
(\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$
我已经对here进行了测试。