2017-01-05 55 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種方案。

我試過後視,向前看,我無法弄清楚那裏有什麼工作。這些對我來說還是有些陌生的。

+0

'<', '>'或'|'後面的空格不是簡單的'tab',否則它應該打印'1'。 – revo

+0

'\ s + [\ | \ <|\>] \ s +'會匹配所有場景。這是你在找什麼? – Technomad

+1

是否需要空格?我認爲'\ h * [<> |] \ h +'會起作用,如果需要空格,請將'*'改爲'+'。 – chris85

回答

0

我不知道我是否正確理解你的問題。但是,如果你想匹配|<>那麼你可以使用一個簡單的正則表達式是這樣的:

[|<>] 

如果你想匹配的空間和話,那麼你可以使用這樣的事情:

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

Working demo

enter image description here

0

你們是對的。我的代碼已經工作。我遇到的問題是,當有'<'而不是'|'時代碼不再使用後面的選項卡,它只能在那裏做空格......這是意想不到的,很難通過查看它來區分它們。

感謝您的幫助。它似乎比以前複雜得多。在排除故障時很難區分空格和標籤。是的,這些空間/標籤必須在那裏。

相關問題