1

我目前正在寻找一种在某些地方从字符串中删除句号的方法。

我希望它只有在不满足两个条件的情况下才会删除句号;

   句号前没有数字。

   句号后没有数字。

我目前有这个正则表达式

'#(?<!\d)\.(?!\d)#'

但这不会删除字符串中的句号,例如

'hello.1', '1.hello'

我猜想因为在句号之前或之后有一个数字,所以匹配失败并且无法识别。

我怎样才能做到这一点,以便必须满足向前看和向后看才能进行匹配并正确删除句号?

谢谢你。

编辑

我希望它在且仅当在〜或〜句号之后没有数字时才删除句号。因此,如果字符串是这样的,则只能有句号,(a digit).(a digit)但在任何其他情况下都会删除句号。

4

1 回答 1

3

你可以这样做:

'#((?<!\d)\.|\.(?!\d))#'

如果它之前或之后是非数字,它将删除点。

于 2012-06-20T03:16:39.430 回答