我有以下几行:
- F. Scott Fitzgerald的《大盖茨比》(1925年(是一部简短的小说。
- 搏击俱乐部是查克·帕拉赫尼克(Chuck Palahniuk(的1996年小说。
我必须选择以为的作家名字,并且它是写的;分别为1925年和1996年。我想的是,我需要几条言论;一种仅用于选择d+
和另一种用于选择作者名称的数字。对于作家,我制作了此正则是(https://regex101.com/r/z55yz3/1(,但由于.
和Space的存在,它不应工作。
[0-9]{4}
-取4位数字
bby
-获取word'by'和
(?:s+[A-Z][w.]+)+
-选择以下单词和缩写,以大写字母开头
([0-9]{4}).*(?:bby)((?:s+[A-Z][w.]+)+)
演示和说明
您可以像这样使用此正则 /^.+? BY (.+)$/is
$string_text = 'The Great Gatsby (1925) by F. Scott Fitzgerald is a short novel which takes.';
preg_match("/^.+? BY (.+)$/is" , $string_text, $match);
echo $match[1];