2017-01-05 1 views
0

私は百万もの類似の質問を検索しましたが、この特定のシナリオに対する答えは見つかりません。PHPテキストの途中でシンボルの大小をpreg_matchする方法はありますか?

問題:

<?php 
$text = "some words | other words"; 
$text2 = "some words > other words"; 
$text3 = "some words < other words"; 

print preg_match("/\s+\|\t/", $text); //this works, will print 'true' 
print preg_match("/\s+(<|>|\|)\t/", $text2); //never true for $text2 or $text3 
print preg_match("/\s+[<\|>]\t/", $text3); //never true for $text2 or $text3 
?> 

私はすべての3つのシナリオのためにtrueになります何かを必要としています。

私はルック・バックを試して先を見て、それが動作する何かを理解できません。それらはまだ私にとっては幾分外国人です。

+0

「<', '>」または「|」の後の空白は単に「タブ」ではなく、そうでない場合は「1」を出力します。 – revo

+0

'\ s + [\ | \ <|\>] \ s +'はすべてのシナリオで一致します。これはあなたが探しているものですか? – Technomad

+1

空白は必要ですか?私は '\ h * [<> | \ h +'は動作すると思いますが、空白が必要な場合は '*'を '+'に変更してください。 – chris85

答えて

0

あなたの質問が正しく理解されているかわかりません。しかし、あなたは|<>を一致させたい場合、あなたはこのような単純な正規表現を使用できます。

[|<>] 

をそして、あなたは、スペースと言葉を一致させたい場合、あなたはこのようなもの使用することができます

\w+\s+[|<>]\s+\w+ 

Working demo

enter image description here

0

あなたは正しいです。私のコードはすでに動作しています。私が抱えている問題は、 '|'の代わりに '<'コードはもはやタブを使用していません。その代わりにスペースのみを使用しています....それを見て差異を伝えることは意外と困難でした。

ありがとうございました。それはそれよりずっと複雑に思えました。トラブルシューティングの際にスペースとタブの違いを伝えるのは難しいです。そして、はい、それらのスペース/タブがそこになければなりません。

関連する問題