2016-04-29 4 views

答えて

2

なぜ両方ではありませんか?

^(?=.*[a-zA-Z])[^\s+]+$ 

lookaheadを使用します。

^(?=.*[a-zA-Z])[^\s+]+$ 
^      start of regex 
(?=.*[a-zA-Z])   make sure there is at least a letter ahead 
       [^\s+]+ make every character is not a plus or any whitespace character 
         $ end of regex 

\sが既にスペース(U + 0020)が含まれているため、私は私の[^\s+]にあなたの[^\s+ ]をどのように変化するかに注意してください。

+2

先読みは常にではありませんサポートされます。 MySQL、RE2、XML Schemaのフレーバは先読みをサポートしていません。 –

+1

私はあなたの答えの最初の行を読む:http://i.imgur.com/MglYGBt.jpg – Alhadis

2

あなたはパターンが一致regex demo

を参照してください

/^[^+\s]*[a-z][^+\s]*$/i 

使用することができます。

  • ^ - 文字列
  • の開始
  • [^+\s]* - ゼロまたは+と空白以外の複数の文字
  • [a-z] - 文字(大文字と小文字を区別しない - /i修飾子を参照) - +以外のゼロ以上の文字と空白
  • $ -
  • [^+\s]*を文字列の最後

この式は1文字しか必要とし、文字の両側にスペースとプラス以外の任意の数の文字を入れることができます。

2

これを試してください。私はあなたが "ユニーク" によって何を意味するかわからない、しかし:

/^[^+\s]*[A-Za-z][^+\s]*$/ 
+0

これは私の解決策です(修飾語を付けないでください)。 –

+0

@WiktorStribiżewUhm、私たちは同時に答えを書きました。これを行うにはまともな方法が1つしかありません...特定の文字範囲に対してマッチする方が一般的に早いため、修飾語を使用することは避けました(多くの正規表現エンジンでは、 )。 – Alhadis

+0

※同時に4分差はありません。とにかく、あなた自身に合ってください。 –

関連する問題