让我用下面的例子来说明。
str = "we are friends"
帮助文档说
符号\<和\>匹配开头的空字符串和 一句话结束。
因此,预计会发生以下情况,其中在每个单词的末尾添加一个空格。
gsub("\\>"," ", str)
[1] "we are friends "
然而,为什么它在使用
时不起作用gsub("\\<"," ", str)
[1] " w e a r e f r i e n d s"
有人可以解释为什么会这样吗?如果我想在每个单词的前面添加额外的空格,我需要做什么?
答案 0 :(得分:1)
这很奇怪,但我认为这是documented as a warning:
gregexpr
和pattern = "\b"
的POSIX 1003.2模式无法正常使用重复的字边界(例如perl = TRUE
)。使用\\b(?=\\w)
进行此类匹配(但对于非ASCII输入可能无法正常工作,因为'word'的含义取决于系统)。
因此,请(?<!\\w)\\b
使用perl=T
或str = "we are friends"
gsub('(?<!\\w)\\b', ' ', str, perl=T)
:
[1] " we are friends"
请参阅demo
输出:System.Net.NetworkCredential credencials = new System.Net.NetworkCredential();
credencials.UserName = "mail@domain.com";
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient();
mail.To.Add(email);
mail.From = new MailAddress("mail@domain.com");
mail.Subject = subject;
mail.IsBodyHtml = true;
mail.Body = message;
SmtpServer.Host = "smtpserver";
SmtpServer.Port = 25;
SmtpServer.Credentials = credencials;
SmtpServer.EnableSsl = true;
SmtpServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
SmtpServer.Send(mail);
。