簡體   English   中英

正則表達式在PHP字符串中的句子之間添加空格

[英]Regex to add spacing between sentences in a string in php

我使用西班牙語字典api來返回帶有小問題的定義。 當定義具有多於1個句子時,會發生此特定問題。 有時句子之間沒有用空格字符正確分隔,所以我收到如下信息:

這是一個句子。另一些句子。有時點之間沒有空格。 看到?

我正在尋找可以代替“”的正則表達式。 當圓點后緊跟一個不同於空格字符的字符時,表示“。”。 preg_replace()應該返回:

這是一個句子。 其他句子。 有時點之間沒有空格。 看到?

到目前為止,我有這個:

echo preg_replace('/(?<=[a-zA-Z])[.]/','. ',$string);

問題在於,當點后已經有空格時,它還會添加一個空格。 有任何想法嗎? 謝謝!

試試這個正則表達式:

echo preg_replace('/(?<!\.)\.(?!(\s|$|\,|\w\.))/', '. ', $string);

如果下一個字符不是空格或不是字符串的末尾,則只需要先行查找即可添加空格。

$string = preg_replace('/(?<=[a-zA-Z])[.](?![\s$])/','. ',$string);
echo preg_replace( '/\.([^, ])/', '. $1', $string);

有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM