gpt4 book ai didi

php - 在php中清理句子

转载 作者:可可西里 更新时间:2023-10-31 23:11:55 27 4
gpt4 key购买 nike

标题可能听起来很奇怪,但我有点想设置这个 preg_replace 来处理文本区域的困惑编写器。它必须:

  1. 如果有感叹号,则不能再出现感叹号。
  2. 如果有 .,逗号优先,必须是 ,
  3. 当逗号前有一个+空格时,应该减为无。
  4. 句子不能以逗号开头或结尾。
  5. 连接在一起的相同字母绝不能超过 2 个。
  6. 逗号后必须始终有一个空格。

例如:

  • ,我的房子是绿色的,真好!
  • 我的房子...,它是绿色的,很好!!!
  • 我的房子是绿色的,非常好!!

最终结果应该总是:

我的房子,绿色的,真好!

是否有一个已经构建的正则表达式来处理这个问题?

解决方案查看FakeRainBrigandsolution下面!

最佳答案

我可能不得不将它用于我自己的网站......好主意!

<?php

$text = 'My hooouse..., which is greeeeeen , is nice!!! ,And pretty too...';

$pats = array(
'/([.!?]\s{2}),/', # Abc. ,Def
'/\.+(,)/', # ......,
'/(!)!+/', # abc!!!!!!!!
'/\s+(,)/', # abc , def
'/([a-zA-Z])\1\1/', # greeeeeeen
'/,(?!\s)/');

$fixed = preg_replace($pats, '$1', $text);

echo $fixed;
echo "\n\n";

?>

$text 的“修改”版本:“我的房子是绿色的,很漂亮!也很漂亮。”

更新:这是处理 "abc,def"-> "abc, def"的版本。

<?php

$text = 'My hooouse..., which is greeeeeen ,is nice!!! ,And pretty too...';

$pats = array(
'/([.!?]\s{2}),/', # Abc. ,Def
'/\.+(,)/', # ......,
'/(!)!+/', # abc!!!!!!!!
'/\s+(,)/', # abc , def
'/([a-zA-Z])\1\1/'); # greeeeeeen

$fixed = preg_replace($pats, '$1', $text);
$really_fixed = preg_replace('/,(?!\s)/', ', ', $fixed);

echo $really_fixed;
echo "\n\n";
?>

我认为这有点慢,因为它是一个额外的函数调用。

关于php - 在php中清理句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8391958/

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