我正在尝试修复我的推文Feed,并希望将推文的时间戳与每个推文的页面相关联。
我使用正则表达式为我的推文时间戳创建了我的函数,但它似乎无法正常工作。
时间戳的格式为about xx minute(s)/hour(s)/day(s) ago
,我用下面的正则表达式来描述它。
$tweet="/about + /[0-9] + / minute[s]|day[s] ago/";
这可能是完全错误的,但我是新手,我很感激任何帮助。
非常感谢提前!
编辑:我的Feed的格式为:大约xx分钟/小时/天前:推文包括主题标签/用户名/网址的链接。
我的功能基本上检查[约xx分钟/小时/天前]中的任何内容是否与$ tweet格式匹配,然后它将https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=whatever&count=2 url传递给它。
事情是,当该功能运行时,我回来的只是主题(约xx分钟/小时/天)之后。我在php.net上读到,当你找回主题时,这意味着找不到任何一个maches,这让我得出结论我的正则表达式是错误的。
所以,我想我想知道的是我使用的正则表达式是错还是正确。
答案 0 :(得分:0)
您可以尝试使用此正则表达式:
about [0-9]{2}/[0-9]{2}/[0-9]{2}
为了确保您生成的语法,您可以使用在线正则表达式测试人员网站对其进行测试。以下是一个示例网站:http://regexpal.com/
答案 1 :(得分:0)
/about + /[0-9] + / minute[s]|day[s] ago/
^ ^
| |
| |
repetition one or more: here one or more space then followed
by another space
我想这不是你想要的。还有更多的问题,但我倾向于保持简单,一次做一个修复。为什么不从这个开始?
答案 2 :(得分:0)
尝试关注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)
答案 3 :(得分:0)
试试这个
约xx分钟/小时/天前
about [0-9]{2} [0-9]{2}/[0-9]{2}/(0?[1-9]|[12][0-9]|3[01]) ago