gpt4 book ai didi

php - 正则表达式从字符串开头删除单个字符,仅当有 2 个或更多时

转载 作者:可可西里 更新时间:2023-11-01 00:45:46 25 4
gpt4 key购买 nike

我对复杂的正则表达式感到非常痛苦,但我希望在正确的方向上轻推。当稍后使用全名时,我试图通过删除首字母来解析某些作者的姓名。我意识到可能不会有捕获所有异常的“完美”解决方案,但我正在寻找“足够好”的解决方案。

示例输入

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 和 j k rowling 中的 j k。

感谢您的任何见解。

最佳答案

你可以这样使用它:

$str = 'C S Clive Staples Lewis';    
$str = preg_replace('#^([A-Z]\s)+(?=([A-Z]+\s+){2,})#i','',$str);
echo $str; // Clive Staples Lewis

$str = 'J K Rowling';
$str = preg_replace('#^([A-Z]\s)+(?=([A-Z]+\s+){2,})#i','',$str);
echo $str; // J K Rowling

关于php - 正则表达式从字符串开头删除单个字符,仅当有 2 个或更多时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19319359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com