[英]Regex Capital letter combo
REGEX對我來說是個謎。 在搜索了SO之后,我確實下載了Espresso並完成了本教程,但是事情對我來說仍然沒有意義。 這可能只是我的特定需求,但我還沒有找到任何示例。 我想做的是找到完全是兩個特定大寫字母(或小寫字母,混合字母)和一串數字的匹配。 以下是我要測試的情況:
TL123
TL 123
tl123
tl 123
TLABC123
tlabc123
然后,我想做的是preg_replace
該匹配的結果(例如,最終總是返回TL-123
)。
因此, TL
之后的任何字母或數字組合都將返回TL-
,反之亦然。 任何朝着正確方向前進的微動都會非常有幫助。 謝謝!
編輯
實際上,這可能是我需要的preg_match_all 。
要匹配指定的模式,可以使用:
TL(?:[^0-9]*)(\d+)
這將與TL
匹配,后跟不是數字(或沒有數字)的任何內容,然后是數字列表。
您可以將其與PHP的preg_replace()
例如:
$str = preg_replace('/TL(?:[^0-9]*)(\d+)/i', 'TL-$1', $str);
當然,此示例假定TL
是您要匹配的確切字符。 如果TL
只是一個占位符,並且您可以匹配任何內容,則可以使用以下內容:
preg_replace('/([a-z]{2})(?:[^0-9]*)(\d+)/i', '$1-$2', $str);
這樣,我就硬編碼為僅允許2個字符匹配( {2}
)。 如果需要更改,可以將其修改為任何數字。
另外,由於您希望匹配的字符始終為大寫字母,但可以匹配小寫字母,因此建議僅在結果周圍使用strtoupper()
(而不是回調)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.