2015-06-19 2 views
-2

Так в основном, у меня есть большая строка с какой-либо другой информацией, и где-то в конце концов, у меня есть следующая структура строки:PHP Regex чтобы найти определенную подстроку

62AC979D-5277D720 

Это цифра и прописные буквы буквы. Я хотел бы извлечь эту подстроку из многих строк больших строк, которые все содержат ее в разных местах. Я пробовал:

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

Но у меня действительно мало опыта с регулярными выражениями. Может ли кто-нибудь предоставить регулярное выражение или, по крайней мере, сказать мне, где я ошибаюсь? Спасибо за ваше время!

+0

простой, 'preg_match ('/^[\ ш -] + $ /', $ строка);' –

ответ

1

Это регулярное выражение должно сделать это для вас,

([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 также является a-z, A-Z, 0-9 и _. Я думаю, что вам небезразличны прописные буквы, и вы хотите разрешить только одну тире. Если цель всегда будет всего 8 символов, вы можете добавить {8} вместо +. () должны отображать найденное значение. Первое найденное значение в $string будет $value[1][0].

Демо: http://sandbox.onlinephpfunctions.com/code/c6b2c391d95c5454a3c7ea81d5ac4a3bb8e49aef

+0

Это один, но как я могу ограничить символы до и после «-» - «8», потому что есть даты в строке, например, 2015-12, поэтому они соответствуют этому. – dsthetics

+1

Используйте '{8}' вместо '+' s. Я обновлю. – chris85

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

Это должно сделать это за вас.

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

Это работает для строки, которую вы дали 8 числа т.е. или алфавиты с последующим - а затем цифры и алфавиты снова

0

Вы попробовать это.

preg_match('/^[0-9A-Z]{8}-[0-9A-Z]{8}$/', $string) 
Смежные вопросы