我有一个字符串:
$str = "Hello, I'm a beautiful, string. How are you?";
我希望得到#34;美丽"的下一个字。我的意思是,我想得到" string"。 我认为使用pre_match更好地处理迭代器数组并比较每个单词...(必须省略逗号,点和斜杠)。 我对此一无所知......如果有可能的话。
答案 0 :(得分:3)
您可以使用this regex:
~beautiful[^a-zA-Z\d.]*([a-zA-Z\d]+)~
E.g。用PHP:
preg_match('~beautiful[^a-zA-Z\d.]*([a-zA-Z\d]+)~', $str, $results);
echo $results[1]; // string
细分:
~
beautiful // match "beautiful literally
[^a-zA-Z\d]* // don't match any letters or digits zero or more (catch punctuation etc)
( // open capture group
[a-zA-Z\d]+ // match letters or numbers at least once
) // close capture group (stops at first occurence that
~ // doesn't match above
答案 1 :(得分:3)
您可以使用以下内容:
\bbeautiful\b\W*\b(\w+)\b
类似于: