我正在尝试将括号中的日期替换为一些文本:
ADB (2010-11) (a) -> ADB : newtext (a)
$output = preg_replace_callback('#\(([\d{4}-d{2}][^)]+)\)#', function ($m) {
return " : ". newtext ." ";
}, $str);有什么建议吗?
发布于 2020-12-07 10:11:56
你不需要preg_replace_callback,preg_replace就可以实现这个目标。但是,您需要修复您的正则表达式。[]中的所有内容都应该是一个字符列表、由-分隔的范围(例如,a-z表示a和z之间的ASCII码(非大写)),或者元字符(例如,\d表示数字)。括号被称为字符类,有关它们的更多信息可以在https://www.regular-expressions.info/charclass.html上阅读。
对于你想要的东西,你可以使用:
\(\d{4}-\d{2}\)并替换为:
: newtext作为PHP行:
echo preg_replace('/\(\d{4}-\d{2}\)/', ': newtext', 'ADB (2010-11) (a)');
https://stackoverflow.com/questions/65175110
复制相似问题