2016-12-13 3 views
0

それは許してはならない:1%、^ 1、などのことができるようにする必要があります数字または正の負の数字以外の何かを受け入れる正規表現とは何ですか?

1 
2+ 
-3 
4- 
+5 

それはその例:以外を許可する必要があります。私はこのようにしようとしていた:

^[%[email protected]#$^&*()]\d[%[email protected]#$^&*()]$ 

しかし、間に失われている。どうすればいいのですか?

更新日:^(?:\d[^-+]|[^-+]\d)$が必要です。

+0

てみてください 'を参照してください^(?:\ dは[^ - +] 2文字の文字列と1桁の数字をマッチさせる必要があり、もう1つの記号を '-'や' + 'にすることができない場合は、[|^- +] \ d)$'それらの数字+記号以外の文字列にマッチさせるには、 '^(?:(?:\ d [ - +] | [ - +] \ d)$)+' –

+0

溶液。答えとして解を書いてそれを受け入れます。 – ndn

+0

@WiktorStribiżewあなたのコメントを回答として投稿できるようです。 ndn IMHOあなたは編集をロールバックする必要があります。 –

答えて

1

あなたが唯一の非数字の使用を受け入れる場合^\D+$

+0

これはOPが望んでいたものではありません。彼の更新をチェックしてください。 – ndn

0

これを試してください:あなたは

^(?:\d[^-+]|[^-+]\d)$ 

を使用することができ

""" test with 1, 2+, -3, 4-, +5""" 
a = "1-" 
b = re.search("^\D+$",a) 
if b: 
    print b.group(0) 
+0

もし私が1%をしたら、それは許すべきですが、そうではありません。 – Natasha

1

それは1桁とした2文字の文字列に一致します。他の記号は-または+にはできません。

パターン

  • ^ - 文字列
  • の開始
  • (?:\d[^-+]|[^-+]\d) - のいずれか
    • \d[^-+] - 数字と-以外の任意の文字と+
    • | - または
    • [^-+]\dから-+または数字以外の任意の文字
  • $ - 文字列

の終わりには、regex demo

+0

Natasha、[あなたのために働く答えを受け入れる](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を検討し、[あなたに役立つアウト](http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow)以前の質問を修正して、それに応じて行ってください。 –

関連する問題