我正试图从电子邮件主题行中删除一个词,以用作附加电子邮件的类别。 Preg_match可以很好地工作,只要它不只是一个单词(这是我想要做的事情)。如果主题行中只有一个单词,我只得到一个空数组。在这种情况下,我试图将$ match视为一个变量,但这也不起作用。任何人都可以告诉我preg_match是否可以处理一个单词,或者更好的方法是什么?
非常感谢
答案 0 :(得分:0)
preg_match
将处理一个字符长的字符串。我认为这里的问题可能是你的正则表达式。我的猜测是你正在测试空白,因为它没有找到任何它说没有匹配。尝试将'^([^\s]*)$|'
附加到您的正则表达式,我打赌它将开始获取这一个单词值。 ([^\s]
表示给我任何没有空格的内容,|
表示'或'。通过将其添加到正则表达式的前面,它将包含没有空格的内容或你已经拥有的任何东西)
答案 1 :(得分:0)
假设\b(?:word1|word2|word3)\b
它与“word1”不匹配的原因是因为你包含了一个单词分隔符\b
。
你可以做的只是简单地注入单词分隔符:
preg_match("\b(?:word1|word2|word3)\b", "." . $subject . ".", $matches);
粗暴但有效。