亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式匹配除以正斜杠開頭的所有數字

正則表達式匹配除以正斜杠開頭的所有數字

PHP
FFIVE 2023-10-22 21:55:09
我有一個正則表達式來匹配格式為電話號碼或類似于電話號碼的數字。我必須省略以正斜杠開頭的數字,因為這可能是 URL 的一部分。我使用了以下正則表達式。它在所有情況下都能很好地工作,但正則表達式會忽略句子開頭沒有正斜杠的任何數字。誰能幫我解決這里的錯誤嗎?/[^\/0-9](\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{2,3}[\s.-]?\d{3}/i測試案例1:23242424 242424242 24242424424 2424244242 242 24242424/1212121212 1 05454545454 5454045454 0115545454 /454545454輸出 1:(以粗體斜體表示的匹配項)23242424 242424242 24242424424 2424244242 242 24242424/1212121212 1 05454545454 5454045454 0115545454 /454545454測試用例2:(第一個數字前面有一個空格)23242424 242424242 24242424424 2424244242 242 24242424/1212121212 1 05454545454 5454045454 0115545454 /454545454輸出 2:(以粗體斜體表示的匹配項)23242424 242424242 24242424424 2424244242 242 24242424/1212121212 1 05454545454 5454045454 0115545454 /454545454
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

您可以使用否定后向查找而不是否定字符類來匹配字符串位置的開頭:

'/(?<![\/0-9])(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{2,3}[\s.-]?\d{3}/'
  ^^^^^^^^^^^^

請參閱正則表達式演示

這里,(?<![\/0-9])是一個負向后查找,與前面沒有緊接正斜杠或數字的位置相匹配。

請注意,您不需要不區分大小寫的修飾符,除非這是您還匹配字母的較長模式的一部分。


查看完整回答
反對 回復 2023-10-22
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

我的方法非常殘酷,但在搜索數字之前,我會簡單地從主字符串中刪除所有以 / 開頭的數字。就像是$str = preg_replace('/\/\d+/', '', $str);



查看完整回答
反對 回復 2023-10-22
  • 2 回答
  • 0 關注
  • 203 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號