正则表达式匹配模式“Double-Double”
本文关键字:Double-Double 模式 正则表达式 | 更新日期: 2023-09-27 18:10:12
我很难找到匹配此模式的正则表达式:
- 数字(小数分隔符可以是
.
或,
),后面跟着 - -
-
,后面接 - 一个数字(小数分隔符可以是
.
或,
),后面跟着 - 半列或空格字符
此模式可重复一次或多次。
下面的例子应该匹配正则表达式:
1-2;
1-2;3-4;5-6;
1,0-2;
1.0-2;
1,0-2.0;
1-2 3-4;
1-2 3,00-4;5.0-6;
下面的例子不应该匹配正则表达式:
1-2
1 2;
1_2;
1-2;3-4
Edit基于1 2;
移动到非匹配而更新。
这个应该可以工作:
@"^('d+([,.]'d+)?-'d+([,.]'d+)?[ ;])+(?<=;)$"
解释^ //Start of the string.
( //Start of group to be repeated. You can also use (?=
'd+ //One or more digits.
([,.]'d+)? //With an optional decimal
- //Separated by a dash
'd+([,.]'d+)? //Same as before.
[ ;] //Terminated by a semi-colon or a space
)+ //One or more of these groups.
(?<=;) //The last char before the end needs to be a semi-colon
$ //End of string.
试试这个:
@"^(['d.,]+-['d.,]+[ ;])*['d.,]+-['d.,]+;$"
注意['d.,]+
接受一些通常不被认为是有效的"数字"值的字符序列,如00..,.,
。您可能希望找到一个更好的正则表达式来匹配数值,并将其替换为正则表达式。