dqr91899 2019-03-29 17:21
浏览 52
已采纳

用标点符号错误和缺少空格清理字符串

Hi, I have the following string:


TheLion is walking(proudly) through theJungle,but he misses hisTeddy.1very sad day!It is VegeterianDay,too. How can we help him?Maybe withBambi&a good song! Or with bread & butter;What do you think:agree?

I need this:

The Lion is walking (proudly) through the Jungle, but he misses his Teddy. 1 very sad day! It is Vegeterian Day, too. How can we help him? Maybe with Bambi & a good song! Or with bread & butter; What do you think: agree?


1very and 1Very should be treated the same way.

I've tried this:

<?php
$string="TheLion is walking(proudly) through theJungle,but he misses hisTeddy.1very sad day!It is VegeterianDay,too. How can we help him?Maybe withBambi&a good song! Or with bread & butter;What do you think:agree?";
echo trim(preg_replace_callback('~\b\'\b(*SKIP)(*F)|\s*(\p{P}+)\s*~u', function($m) {
    return preg_replace('~\X(?=\X)~u', '$0 ', $m[1]) . ' ';
}, $string)); 
?>

Result:

TheLion is walking( proudly) through theJungle, but he misses hisTeddy. 1very sad day! It is VegeterianDay, too. How can we help him? Maybe withBambi& a good song! Or with bread& butter; What do you think: agree?


Thanks a lot

  • 写回答

1条回答 默认 最新

  • duanjuhuo8772 2019-03-29 19:16
    关注

    Thanks to @Thefourthbird

    <?php
    $str = "TheLion is walking(proudly) through theJungle,but he misses hisTeddy.1very sad day!It is VegeterianDay,too. How can we help him?Maybe withBambi&a good song! Or with bread & butter;What do you think:agree?";
    $re = '/\b(?=[(][A-Za-z])|(?<=[,.!;:?)])\b|(?<=[a-z])(?=[A-Z])|(?<=[a-z]&)|(?=&[a-z])|(?<=[0-9])(?=[a-zA-Z])/m';
    $subst = ' ';
    $result = preg_replace($re, $subst, $str);
    echo $result;
    ?>
    

    result:

    The Lion is walking (proudly) through the Jungle, but he misses his Teddy. 1 very sad day! It is Vegeterian Day, too. How can we help him? Maybe with Bambi & a good song! Or with bread & butter; What do you think: agree?

    Have a nice weekend!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行