首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个足球比分的PHP解析字符串

一个足球比分的PHP解析字符串
EN

Stack Overflow用户
提问于 2014-09-17 07:27:12
回答 1查看 145关注 0票数 0

我有一个如下格式的字符串,希望提取以下数据:-主队-客场球队-主场球队得分-客场球队得分

我设法找到了主场得分和客场得分,但我很难得到球队的名字。

代码语言:javascript
复制
$str = "  20.45   Manchester United  4-2  Bayer Leverkusen";

preg_match('/(\d)-(\d)/', $str, $matches);

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 08:19:38

如果文本总是相似的,字段之间有多个空格,那么您可以利用这一点。

[A-Z](?: ?\S)*将匹配以大写字母开头的字符串,后跟最多一个空格的非空格字符。它只会匹配到有两个连续空格。

所以你可以说

代码语言:javascript
复制
$str = "  20.45   Manchester United  4-2  Bayer Leverkusen";

# Having it separate makes things less noisy and more self-documenting, IMO.
# But you can do the same thing inline if you want.
$team_name = '[A-Z](?: ?\S)*';
preg_match("/($team_name) +(\d+)-(\d+) +($team_name)$/", $str, $matches));

var_dump($matches);

输出(至少在控制台中)将如下所示

代码语言:javascript
复制
array(5) {
  [0]=>
  string(40) "Manchester United  4-2  Bayer Leverkusen"
  [1]=>
  string(17) "Manchester United"
  [2]=>
  string(1) "4"
  [3]=>
  string(1) "2"
  [4]=>
  string(16) "Bayer Leverkusen"
}

如果需要更多i18n,可以使用\p{Lu} (如果在模式上使用/u修饰符来启用UTF-8模式)、[^\d\s]甚至\S来替换[A-Z]。但是。

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

https://stackoverflow.com/questions/25879947

复制
相关文章

相似问题

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