2014-04-09 58 views

回答

3

空間這個正則表達式匹配符合你的原始表達式沒有在一開始有一個空格或者回車

^(?!)[A-Za-z ]*(?<!)$ 
+0

不接受像'1a b c2'這樣的東西? –

+1

@ AD7six,精確地少於2個字符。 – Gedrox

+0

已編輯所以它適用於單個字符串 –

2

我的任何字符串可能會分裂這個問題:或者它根本不包含空格,或者它只包含在中間。

^[A-Za-z]*$|^[A-Za-z][A-Za-z ]*[A-Za-z]$ 

它將接受 「AA」, 「A」, 「A AB C」,而不是 「」 或 「」 ......

3

使用此模式在正則表達式匹配

(?=(?:^\w))([A-Za-z ]+)(?<=[^ ])$ 

演示

http://regex101.com/r/lM1aQ6

我建議你使用trim()在php中刪除字符串開頭和結尾的空格。

$hello = " Hello World "; 
trim($hello); 

PHP文件

裝飾 - 從字符串

+0

OP指定他們正在使用正則表達式。 –

+0

@TomGriffin我編輯了使用正則表達式的答案 – Nambi

+0

我認爲你應該允許空字符串,否則OP將使用+而不是*。這聽起來相當複雜。 –

0

的開頭和結尾地帶的空白(或其它字符),我認爲你需要這樣的:

<?php 
echo trim(" spaces and spaces "); // outputs: "spaces and spaces" 
?> 
+0

-1,因爲這不會回答問題。 – AD7six

+2

我知道,但也許他不知道php中trim()函數的存在。 – Cagy79

+0

@ AD7six,你爲什麼認爲'trim()'不能回答這個問題? –

相關問題