【发布时间】:2017-04-26 08:07:07
【问题描述】:
我尝试为以下示例构建正则表达式:
球队名称|百分比值(不包括管道)
百分比值可以包含 1 或 2 个数字并以 % 结尾
问题是团队名称以以下数字结尾时:
沙尔克 04
所以字符串将是: schalke 041% 或 schalke 0420%
我需要提取团队名称和百分比值。
足球队名称可以是欧洲任何一支球队。
提取的最佳正则表达式解决方案是什么?
现在我有类似他的东西:
[A-Za-z 0-9']+([0-9]{1,2}%)
但如果字符串是 schalke 0412%,提取后我会得到 schalke 041 和 2%。
我正在使用 C#。
谢谢。
【问题讨论】:
-
这个字符串中什么是静态的,什么是动态的(=可以改变)?匹配
abc04的规则是什么?试试[A-Za-z ']+[0-9]{2}([0-9]{1,2}%) -
abc04(1%|12%)怎么样? -
我忘了说但它也可以是 abc12%(不带 04),数字可以是名称中的任何位置,如 4abc、ab4c、abc 等。
-
我想你忘记了更多细节。请在问题中添加所有要求。也许你只需要
(?:04)?([0-9]{1,2}%) -
" 如果字符串是 abc0412%,提取后我得到 abc041 和 2%。" 您还应该显示返回错误结果的代码。它有助于理解需求并表明您已经亲自尝试过