PHP RegEx+;删除字后的点

PHP RegEx+;删除字后的点,php,regex,Php,Regex,在一个字符串中,我有几个带点的单词;e、 g: lorem 1.5 ipsum。柳条箱 经过多次测试,如果点在单词后面,我不知道如何删除点。例如,我想获取以下字符串: lorem 1.5 Lopusum板条箱 我已经用这么多正则表达式进行了测试,但没有成功: /\.\b/ /[.]\b/ /[\.]\b/ ... 你能给我举个例子来去掉这些点吗 谢谢您的帮助。您可以像这样使用preg\u replace()函数 $str = 'lorem 1.5 ipsum. Cratea lo

在一个字符串中,我有几个带点的单词;e、 g:

lorem 1.5 ipsum。柳条箱

经过多次测试,如果点在单词后面,我不知道如何删除点。例如,我想获取以下字符串:

lorem 1.5 Lopusum板条箱

我已经用这么多正则表达式进行了测试,但没有成功:

/\.\b/     /[.]\b/    /[\.]\b/ ...
你能给我举个例子来去掉这些点吗

谢谢您的帮助。

您可以像这样使用preg\u replace()函数

$str = 'lorem 1.5 ipsum. Cratea lopusus.';
$result = preg_replace('/([^0-9])\./', '${1}', $str);
你可以试试

\b\.\B
这将匹配单词边界之后和非单词边界之前的所有句点。然而,需要考虑的是:

  • “单词字符”的定义符合您的正则表达式风格
  • 如果在需要匹配的句点之前有一个非单词字符。例如,它将与“I want$gimme now”中的期间不匹配
否则,您可以使用特定字符集
[]
而不是
\b

/([a-zA-Z0-9!@#$%^&*()]+)\.\B/  

preg_replace("/([a-zA-Z!@#$%^&*()]+)\.\B/", "\${1}", $str);  

注意,我使用的字符集只是一个示例,您可以根据需要进行修改。

您应该尝试使用
\。\B
其中
\B
是非单词边界。您使用的三种模式都是相同的。如果您想确保点位于单词字符后面,请使用
\b\。\b
。您可以使用
查看前面的字符是否是字母(?@wiktor,您的模式可以:\b\。\b。每个单词后面的点都会被删除。谢谢;)这是我的代码:preg_replace(“/\b\。”,“,$value”);在您的解决方案中,最后一个字符(每个带点的单词)似乎会被删除。这实际上适用于给定的示例,但在其他情况下可能有问题。例如,尝试对字符串进行测试,如。。“lorem 1.5 ipsum.Cratea lopusus34.我想要美元.现在给我.abc.def什么的.好吧.不是这个”否决投票的原因?