我想驗證一個字符串只包含某些字和字符。Java檢查字符串只有某些字和字符
我要接受一個字符串,需要檢查它僅包含以下內容:
- 「(」
- 「)」
- 「和」 注意空格
- 「OR」注意空格
- 任何整數。如果我可以同時檢查它小於10,那將是一種獎勵,但如果它使代碼複雜化,我可以單獨執行此操作。
如果字符串中有任何其他字符或單詞,我需要拒絕它。
有效的字符串是: (1 OR((2和3)或4,5))
我覺得正則表達式是要要對這個辦法,但我不能工作了如何構建正則表達式來做到這一點。
我知道正則表達式模式是:
- \(
- \)
- \ SOR \ S
- \砂\ S
- \ d +
我's已加入他們在一起,所以模式是: 「\ sOR \ s | \ sAND \ s | \ d + | \(| \)」
這顯然起作用,它會找到任何值,但如果字符串中有額外的字符或字符串,則不會拒絕該字符串。
我不必使用正則表達式,但是當我正在學習它們時,這將是一個理想的例子,可以提供一些幫助。 我一直在使用http://www.regexplanet.com/advanced/java/index.html來測試不同的組合,但現在已經承認失敗。
任何幫助表示讚賞。
請注意,正則表達式(通常)只能匹配常規語言。如果你想讓正則表達式檢查匹配的paranethesis,那麼你已經離開了「正規語言國家」:正則表達式不能這樣做。換句話說:你不能識別「(1或(」)作爲非法表達 –