簡體   English   中英

PHP Regex 查找特定子字符串

[英]PHP Regex to find a specific substring

所以基本上,我有一個包含一些其他信息的大字符串,在最后的某個地方,我有以下字符串結構:

62AC979D-5277D720

它是數字和大寫字母。 我想從大字符串的許多行中提取這個子字符串,這些字符串都在不同的地方包含它。 我試過了:

preg_match('/^[\w]+$/', $string);

但我真的沒有太多的正則表達式經驗。 有人可以提供必要的正則表達式,或者至少告訴我我錯在哪里? 感謝您的時間!

這個正則表達式應該為你做,

([A-Z\d]{8}-[A-Z\d]{8})

正在使用

<?php
$string = 'This is 62AC979D-5277D720 the whole string.';
preg_match_all('~([A-Z\d]{8}-[A-Z\d]{8})~', $string, $value);
print_r($value[1]);

由於^$我懷疑您當前的正則表達式失敗。 這些標記您正在搜索的字符串的開始和結束(如果使用了m修飾符,則為行)。 \\w也是azAZ0-9_ 我認為您只關心大寫字母並且您只想允許一個破折號。 如果目標也總是只有 8 個字符,您可以添加{8}代替+ ()用於捕獲找到的值。 $string第一個找到的值將是$value[1][0]

演示: http : //sandbox.onlinephpfunctions.com/code/c6b2c391d95c5454a3c7ea81d5ac4a3bb8e49aef

preg_match_all('/\\b[0-9A-Z]+-[0-9A-Z]+\\b/')

這應該為你做。

preg_match('/\\b[0-9A-Z]{8}-[0-9A-Z]{8}\\b/', $string);

這適用於您提供的字符串,即 8 個數字或字母后跟 - 然后再次數字和字母

你試試這個。

 preg_match('/^[0-9A-Z]{8}-[0-9A-Z]{8}$/', $string)

暫無
暫無

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

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