1

我有一个函数可以在字符串中搜索一个效果很好的字母和/或数字组合,但有时该组合还包含一个我也想匹配的连字符。下面的正则表达式取自更大的正则表达式模式匹配,但这是我坚持的表达式的一部分。

例如:

([A-Za-z0-9-]+)

匹配字符串 123 或 123A 但不匹配 123-125 或 123A-125A

我确信这是一个简单的解决方案,但这不是我的强项。

提前致谢

$key= preg_replace("/http:\/\/www.website.com\/[0-9]+\/([A-Za-z0-9-]+)_([A-Za-z_]+)_(MUSIC|VIDEO|PHOTOS)_([A-Z_]+)_(..+)_([0-9]+)/i", '${1}, ${2}, ${3}, ${4}, ${5}, ${6}', $url);
4

1 回答 1

0

很简单,您需要转义字符集中的连字符:

([A-Za-z0-9\-]+)
于 2013-03-12T04:55:40.157 回答