2017-10-07 39 views
1

我正在查看包含兩個邏輯的正則表達式: 1.不包含任何空格 2.必須包含(/或。或兩者)。 (/或。)的數量可能是一個或多個。包含一些邏輯的正則表達式

$text = "Hi jaghdja ahja.ja//hda manmna.bnm bana na/bbnavn.com"; //for an example 
//expecting output an array("ahja.ja//hda","manmna.bnm","na/bbnavn.com"); 

我使用

preg_match_all("#([^\s]|\.|\/)*#",$a,$arr); 
print_r($arr); 
+0

Like [''〜\ S * [/。] \ S *〜' '](https://regex101.com/r/hBEMsX/1)? –

+0

/或。可能是多重的,其位置不固定。可能是.aaa/hhjh –

+0

注意你也可以實現你想要的[沒有正則表達式](https://ideone.com/Etgjgw)。 –

回答

1

你可以使用這個表達式是什麼:

[^/.\s]*[./]\S* 

代碼:

preg_match_all('~[^/.\s]*[./]\S*~', $a, $arr); 
print_r($arr); 

RegEx Demo

正則表達式破碎:

  • [^/.\s]*:匹配一個字符不是/,而不是.,而不是一個空白
  • [./]:匹配一個點或斜槓
  • \S* :匹配0或更多非空格字符
+1

謝謝。讓我試試看。 –