[英]Quick help with regex in php
我根本不精通正則表達式,但我需要從 url 中刪除 ID,這些 url 來自大量文本。
URL 看起來像這樣:
domain.com/path/ID_GOES_HERE
問題是,它的內部電子郵件有多種格式,包括:
- <a href="http://www.domain.com/path/ID_GOES_HERE">http://www.domain.com/path/ID_GOES_HERE</a>
- www.domain.com/path/ID_GOES_HERE
- http://domain.com/path/ID_GOES
_HERE
ID 只是字母和數字。 沒有其他任何類型的字符。
編輯:另一個問題是,由於我正在處理格式非常糟糕的電子郵件,因此有時 URL 會出現在行尾,它在兩行之間被拆分,這會在末尾放置一個等號,如下所示:
http://www.domain.com/path/EE33FDE291A=
8D972
所以ID會變形。
這應該做你需要的:
<?php
$matches = array();
preg_match_all('@domain\.com/path/((?:[a-z0-9_]|=\n)*)@i', $subject, $matches);
foreach ($matches[1] as $id) {
$id = str_replace("=\n", '', $id);
// Do your processing here.
}
preg_match('/^domain\.com\/path\/([a-zA-Z0-9]*)$/', $text, $matches = array());
if(isset($matches[1]))
echo $matches[1];
試試這個正則表達式
/(?:https?:\/\/)?(?:www.)?domain.com/path/([\d\w]+(?:\=?(?:\(?:[\r\n]|\r\n|)(?:[\d\w]+)?)?)/
似乎匹配你所有的測試用例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.