電話番号の正規表現を書くときに問題があります。 (あまりにも偉大な彼らにはまだ) 数だけ含まれていてもよい:私は考えていた0-9,+,/,.,-, ,(,)
を:java正規表現0-9と一部の特殊文字
@Pattern(regexp = "(0-9+/\\.\\- \\(\\))?")
をしかし、私はちょうど100
電話番号の正規表現を書くときに問題があります。 (あまりにも偉大な彼らにはまだ) 数だけ含まれていてもよい:私は考えていた0-9,+,/,.,-, ,(,)
を:java正規表現0-9と一部の特殊文字
@Pattern(regexp = "(0-9+/\\.\\- \\(\\))?")
をしかし、私はちょうど100
[0-9\.\-\s+\/()]+
この正規表現を試してみてくださいを入力するときには、すでに文句しかし、あなたの説明と私の正規表現によれば、それはまた+++
またはそのような単一のスペースまたは何かを許可するでしょう、それはあなたが欲しいものですか?
EDIT:そう、以下を使用した方がよいかもしれません:([\.\-\s+\/()]*[0-9][\.\-\s+\/()]*){8,15}
少なくとも8-15の番号を必要とし、それらの間で表示されるように他の文字を許可します。
角かっこを使用して文字クラスを作成する必要があります。
[0-9+/.()-]+
はthis expression on Regexrを参照してください
(なぜなら最後の数量詞+
の)クラス内から1回以上の任意の文字に一致する。しかし、これはでそれらの文字に一致することを意味します
任意注文、例えば"....."は一致します。
あなたの正規表現(0-9+/\\.\\- \\(\\))?
振る舞うこの方法:その後、
マッチ "0-" "/.-()" に続くナインのシーケンス。囲む括弧の後に?
があるため、パターン全体はオプションです。つまり、空の文字列にも一致します。特殊文字は[]
の内側に異なる方法で処理され、そして-
に対処するための最良の方法は、最初にそれを置くことです -
は、私はあなたが"[-0-9+/.()]+"
をしたいと思いますyour expression on Regexr
これは国際電話番号の場合に有効です。 –
@SureshSankarこれは、文字 "0-9 + /。\\ - ()"のみで構成される文字列に一致します。これは多くの自由を許すでしょう。 "++++((((("( "("( "(")と一致するでしょう。 – stema
を参照してください。
または最後に '-'を入れます。 –
@Pattern(regexp = "^[0-9+/.()-]+$")
正しいパターン:あなたが見ることができる正規表現を分割することにより^[\d\/\(\)\- \.]+$
:
^ #Won't match if it doesn't start at the beginning
[ #The character can contain...
\d #digits
\/ #slash
\( #brackets (open)
\) #brackets (close)
\- #hyphen
#space (\s is also possible but can be tab too)
\. #or a dot
]
+ #The character can be repeated
$ #Won't match if it doesn't reach the end
文字クラス内でバックスラッシュもブラケットもエスケープする必要はないと思います –
まあ、ない私が何をしたいが、それは私が必要なものです。私たちのウェブデザイナーは、ユーザーに多くの自由を与え、正確なデータを入力するという善意を信用することをあまりにも好んでいる。 –