2015-02-03 4 views
1

특정 패턴을 링크로 변환하고 일반 사용자 ID가 고려되는 한 정상적으로 작동합니다. 그러나 지금은 암호화 된 ID에도 동일한 작업을 수행하려고합니다. (작품) 이제 내가 좋아하는 텍스트 링크 할 필요가문자열에서 암호화 된 ID를 식별하기위한 정규 표현식과 관련된 문제

$text = "hi how are you guys???... @@[Sam Thomas:10181] @@[Jack Daniel:11074] @@[Paul Walker:11043] "; 
$pattern = "/@@\[([^:]*):(\d*)\]/"; 
$matches = array(); 
preg_match_all($pattern, $text, $matches); 
$output = preg_replace($pattern, "<a href=\"http://localhost/$2\" class=\"tooltip\">$1</a>", $text); 

: 아래

내 코드입니다

"hi how are you guys???... @@[Sam Thomas:ZGNjAmD9ac3K] @@[Jack Daniel:ZGNjAmD9ac3K] @@[Paul Walker:ZGNjAmD9ac3K] "; 

을하지만이 ...

위의 정규 표현식에 의해 식별되지 암호화
+0

https://regex101.com/r/cW4qQ3/15? –

+0

@AvinashRaj 덕분에 \ d *를 \ w *로 바꿔서 이제는 숫자와 문자를 모두 사용할 수 있습니다. – Wolverine

답변

1
@@\[([^:]*):(.*?)\] 

      ^^ 

데모를보십시오. 변경하려면 \d*에서 .*?으로 변경하십시오. 숫자 또는 문자 만 허용하는 \w* 또는 [^\]]* 또는 [0-9a-zA-Z]도 있습니다.

https://regex101.com/r/vD5iH9/52

1
는 숫자와 문자뿐만 아니라를 허용하도록 정규식을 변경

. 이 같은
뭔가 -

@@\[([^:]*):([0-9a-zA-Z]*)\] 
      ^^^^^^^^^^^ Replaced \d 

Demo