我对复杂的正则表达式感到非常痛苦,但我希望朝着正确的方向轻推。当稍后使用全名时,我试图通过删除首字母来解析一些作者的姓名。我意识到可能不会有一个“完美”的解决方案来捕获所有异常,但我正在寻找一个“足够好”的解决方案。
示例输入
C S Clive Staples Lewis
T H Terence Hanbury White
R Salvatore
George R R Martin
J R R John Ronald Reuel Tolkien
J K Rowling
理想输出
Clive Staples Lewis
Terence Hanbury White
R Salvatore
George R R Martin
John Ronald Reuel Tolkien
J K Rowling
类似这样的东西:$str = preg_replace('#(?:\s+\S{1,2})+\s+#',' ',$str);
虽然这显然缺少单个字符的第一个实例,但改变它会删除 r salvatore 中的 r 和 jk rowling 中的 jk。
感谢您的任何见解。