簡體   English   中英

PHP正則表達式向前看並向后看 - 兩者都不匹配?

[英]PHP Regex look ahead and look behind - both must not match?

我目前正在尋找一種方法來刪除某些地方的字符串中的fullstops。

我希望它只有在不滿足2個條件時才會刪除fullstops;

在fullstop之前沒有數字。

在fullstop之后沒有數字。

我目前有這個正則表達式

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

但這並沒有刪除字符串中的fullstops,例如

'hello.1', '1.hello'

我猜測,因為在完全停止之前或之后有一個數字,匹配失敗並且無法識別。

我怎樣才能做到這一點,以便必須滿足前方和后方,以便匹配並正確刪除fullstop?

謝謝。

編輯

我希望它刪除fullstops當且僅當沒有數字之前〜或〜在fullstop之后沒有數字。 因此,如果字符串是這樣的(a digit).(a digit)那么只能有一個fullstop,但在任何其他情況下都會刪除fullstops。

你可以這樣做:

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

如果點前面或后面有非數字,它將刪除點。

暫無
暫無

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

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