我想使用RegEx删除不必要的ZWNJ,目前我在任何情况下硬编码了一些不需要ZWNJ的字符,但是如何将它扩展为所有这些字符呢?删除不必要的ZWNJ
preg_replace('#(?<=[ادذرزژوآأإءa-zA-Z])\x{u200C}#u', '', $parsi);
当ZWNJ放置,否则将被 连接成一个连字两个字符之间,一个ZWNJ分别使它们在它们的 最终和初始形式被印刷。这也是 空格字符的效果,但是在需要将 单词靠得更近时使用ZWNJ。
如果我们需要限制问题阿拉伯文字是没有任何正则表达式元字符来表示没有中间形式(等不需要后续ZWNJ)的信吗?
说真的,我们不需要每个控制字符的标签。请不要将标签放回去。 – BoltClock
对于[a-zA-Z]在任何情况下都不需要ZWNJ,你有错。在德语中,复合名词的连接边界不会形成连字。例如,考虑德语单词“Schifffahrt”(由“Schiff”+“fahrt”,意为“乘船旅行”)。为了正确的排版,你需要一个ZWNJ来防止“fff”连字的形成。更多示例:“Auflage”(“Auf”+“lage”),“Brotzeit”(“Brot”+“zeit”)。 –
@ R.MartinhoFernandes所以,你能说出哪些拉丁字母属于RegEx吗? – PHPst