首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex匹配模式“双双;

Regex匹配模式“双双;
EN

Stack Overflow用户
提问于 2011-09-30 16:10:59
回答 2查看 1.3K关注 0票数 0

我很难找到与此模式匹配的正则表达式:

  • A数字(小数分隔符可以是.,),接着是
  • a dash -,接着是
  • a数字(小数分隔符可以是.,),后面是H 211H 112半列或空格字符H 213>>F 214>

此模式可以重复一次或多次。

以下示例应该与regex匹配:

代码语言:javascript
复制
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;

以下示例不应与regex匹配:

代码语言:javascript
复制
1-2
1 2;
1_2;
1-2;3-4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-30 16:22:56

编辑1 2;移动到不匹配的基础上更新.

这应该是可行的:

代码语言:javascript
复制
@"^(\d+([,.]\d+)?-\d+([,.]\d+)?[ ;])+(?<=;)$"

解释

代码语言:javascript
复制
^              //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.
票数 2
EN

Stack Overflow用户

发布于 2011-09-30 16:13:57

试试这个:

代码语言:javascript
复制
@"^([\d.,]+-[\d.,]+[ ;])*[\d.,]+-[\d.,]+;$"

请注意,[\d.,]+接受一些通常不被视为有效的“数字”值的字符序列,例如00..,.,。您可能希望找到一个更好的正则表达式来匹配数值,并将其替换为正则表达式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7613140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档