我创建了一个正则表达式模式,用于选择特定单词后的单词
$string = "Date: Tue, 23 Jun 2015 19:27:30 +0100 Subject: pastik4567"
$pattern = '/(?<=\bSubject:\s)([a-zA-Z-]+)/';
preg_match($pattern,$file,$subjectname);
print_r($subjectname);
结果只是 pastik 而不是 pastik4567 所以我试过这个
$string = "Date: Tue, 23 Jun 2015 19:27:30 +0100 Subject: pastik4567"
$pattern = '/(?<=\bSubject:\s)([a-zA-Z-]+[0-9]+)/';
preg_match($pattern,$file,$subjectname);
print_r($subjectname);
现在它选择 pastik4567 ,但如果主题是 pastik ,则它不会选择任何内容,因为该模式也希望匹配数字。
所以我想问一下如何使这种模式“灵活”,以便它返回 pastik 和 pastik4567 。
答案 0 :(得分:1)
只需将范围放入1个字符类:
$pattern = '/(?<=\bSubject:\s)[a-zA-Z0-9-]+/';
请参阅demo
请注意,我将 - 放置在字符类的末尾,以便将其视为文字连字符,而不是范围说明符。