为我的twitter时间戳(PHP)查找正则表达式


Find regular expression for my twitter time stamp (PHP)

我正在尝试修复我的推特订阅源,我想将我的推文的时间戳链接到每个推文的页面。

我用正则表达式创建了我的函数作为推特的时间戳,但它似乎不起作用。

时间戳的格式是about xx minute(s)/hour(s)/day(s) ago,我用下面的正则表达式来描述它

$tweet="/about + /[0-9] + / minute[s]|day[s] ago/";

这可能是完全错误的,但我是新来的,我很感激任何帮助。

非常感谢!

编辑:我的订阅源的格式是:大约xx分钟/小时/天:推特,包括标签/用户名/网址的链接。

我的函数基本上检查[大约xx分钟/小时/天之前]中的任何内容是否与$tweet格式匹配,然后通过https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=whatever&count=2个url。

问题是,当函数运行时,我得到的只是主题(大约xx分钟/小时/天之前)。我在php.net中读到,当你取回主题时,意味着没有找到maches,这让我得出结论,我的正则表达式是错误的。

所以,我想我想找出的是我使用的正则表达式是错是对。

尝试以下preg_match

preg_match('/about ([0-9]+) (minute[s]?|hour[s]?|day[s]?) ago/', $string, $matches);

输出

array (size=3)
  0 => string 'about 53 hour ago' (length=17)
  1 => string '53' (length=2)
  2 => string 'hour' (length=4)
array (size=3)
  0 => string 'about 20 minutes ago' (length=20)
  1 => string '20' (length=2)
  2 => string 'minutes' (length=7)
array (size=3)
  0 => string 'about 2 day ago' (length=15)
  1 => string '2' (length=1)
  2 => string 'day' (length=3)

您可以尝试以下正则表达式:

about [0-9]{2}/[0-9]{2}/[0-9]{2}

为了确保您生成的语法,您可以使用在线regex测试网站对其进行测试。以下是一个示例网站:http://regexpal.com/

 /about + /[0-9] + / minute[s]|day[s] ago/
        ^        ^
        |        |
        |        |
    repetition one or more: here one or more space then followed 
    by another space

我想这不是你想要的。还有更多的问题,但我倾向于保持简单,一次解决一个问题。为什么不从这个开始呢?

尝试使用此

前约xx分钟/小时/天

about [0-9]{2} [0-9]{2}/[0-9]{2}/(0?[1-9]|[12][0-9]|3[01]) ago