php - RegEx从标点符号中删除空格后,如何解决连接词问题?
问题描述
我的 RegEx 代码删除了字符串内标点符号左右两侧的空格。删除这些空格后,结果还可以,但有些单词已连接在一起。
我尝试更改我的 RegEx 代码,但结果正是我想要的,即使我尝试在 <a href="https://regex101.com/r/AvooIC/5" rel 等在线测试网站上测试我的 RegEx ="nofollow noreferrer">regex101.com 等。结果在那里还可以,单词不会连接在一起,但是在我的代码中,结果是不同的。我什至为此尝试了具有不同样式的不同 RegEx 代码,但在我的代码中,一些单词仍然连接在一起。顺便说一句,字符串的语言是Farsi
. 但该方法对两者都适用。
$text = "سلام ، این یک متن ( است) متشکرم.";
$removePattern = "/(\s+)*([\.\!\:\)\]\}\(\[\{\?\,\;\؟\،\؛])(\s+)*/";
$replace = "$2";
$text = preg_replace($removePattern, $replace, $text);
我希望输出是
سلام،این یک متن(است)متشکرم.
但结果是这样的
سلاماین یک متنامتحانیاست (شایداینطوری) بهتر، باشه
你能看到如何连接سلاماین
和متنامتحانیاست
粘在一起吗?我的问题是如何解决这个问题,解决这个问题的解决方案是什么?这必须适用于具有不同波斯语内容的不同字符串。
解决方案
您可以在 Linux 和 Windows 系统之间进行通信。他们以不同的方式处理空白字符。
反正
"/(\s+)*([\.\!\:\)\]\}\(\[\{\?\,\;\؟\،\؛])(\s+)*/";
change to
"/(\R+)*([\.\!\:\)\]\}\(\[\{\?\,\;\؟\،\؛])(\R+)*/";
无论系统如何,您都将匹配任何空白字符
推荐阅读
- javascript - HighCharts 为系列的每一列添加多选下拉列表
- javascript - 从字符串中获取 x 天、小时和分钟并转换为 dd:hh:mm 的有效方法
- prolog - 姐夫序言
- powerapps - 如何使用 PowerApps Automate 合并 PDF 文件(由 PowerApps Flow 生成)
- python - 如何使用 sqlalchemy 将一堆数据添加到 postgresql 数据库
- sql - Oracle - FORMAT JSON 给出 ORA-00932
- ethereum - 使用“--allow-insecure-unlock”运行geth
- apache - 来自 apache 的 301 重定向 - 可以保留标头吗?
- python - Python Selenium - 来自 href 链接的来源
- azure - 使用 privatendpoint 创建 SQL 数据库的 ARM 模板