我试图将单词转换为URL。单词用逗号,
分隔。但我的问题是第一个词没有被考虑在内,因为它没有逗号。
public static function convertHashtags($str){
$regex = "/,+([a-zA-Z0-9_]+)/";
$str = preg_replace($regex, '<a href="'.Config::get('URL').'index/hashtag/$1">$0</a>', htmlentities($str));
return($str);
}
例如$str=june,mars,april
结果只有mars
和april
得到网址,而不是june
。
答案 0 :(得分:1)
您可以将正则表达式更改为:
public void process(final Exchange exchange) {
try {
MimeMessage mimeMessage;
final Object body = exchange.getIn().getBody();
if (body instanceof MimeMessage) {
// Body is directly a MimeMessage
mimeMessage = (MimeMessage) body;
} else {
// Create a message with exchange data
mimeMessage = new MimeMessage(sender.getSession());
getEndpoint().getBinding().populateMailMessage(getEndpoint(), mimeMessage, exchange);
}
if (LOG.isDebugEnabled()) {
LOG.debug("Sending MimeMessage: {}", MailUtils.dumpMessage(mimeMessage));
}
sender.send(mimeMessage);
// set the message ID for further processing
exchange.getIn().setHeader(MailConstants.MAIL_MESSAGE_ID, mimeMessage.getMessageID());
} catch (MessagingException e) {
exchange.setException(e);
} catch (IOException e) {
exchange.setException(e);
}
}
在你的单词之前匹配行开头或逗号。
您可以将正则表达式缩短为:
$regex = '/(?<=,|^)([a-zA-Z0-9_]+)/';