ホームページ  >  記事  >  バックエンド開発  >  PHPの文字列操作の問題

PHPの文字列操作の問題

WBOY
WBOYオリジナル
2016-06-23 14:27:24914ブラウズ

文字列: {user:link islocal='1'} /2013/userup/100/131a2Z34-5N8.doc {/user:link}
131a2Z34-5N8 文字列を抽出するには? ? ?
たとえば、類似した文字列が多数あります。
文字列 1: {user:link islocal='1'} /2013/userup/100/131a2Z34-800.doc {/user:link}
文字列 2: {user: link islocal='1'} /2013/userup/100/131a2Z34-801.doc {/user:link}
文字列 3: {user:link islocal='1'} /2013/userup/100/131a2Z34-802 .doc {/user:link}
それぞれの文字列を取り出します:
131a2Z34-800
131a2Z34-801
131a2Z34-802

正規表現を使用する必要がありますか? 実装方法は?


ディスカッションへの返信 (解決策)

$s=<<<txt字符串1:{user:link islocal='1'} /2013/userup/100/131a2Z34-800.doc {/user:link}字符串2:{user:link islocal='1'} /2013/userup/100/131a2Z34-801.doc {/user:link}字符串3:{user:link islocal='1'} /2013/userup/100/131a2Z34-802.doc {/user:link}txt;preg_match_all('#/([^/]+)\.doc\s*{/user#sU',$s,$m);print_r($m[1]);

次のような状況があります:
{user:link islocal='1'} /私はランダムな文字列です/私はランダムな文字列です/私はランダムな文字列です/Iこれはランダムな文字列 {/user:link} です
"{/user:link}" だけが同じです。doc が続いていない可能性があります。それは .xls .txt である可能性がありますが、そこにあるはずです
と思います。 /131a2Z34-802.doc からのみ取得できます {/user:link} もう一つの手もありますが、思いつきません

preg_match_all('#/([^/]+?)\.#',$s,$m);print_r($m[1]);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。