簡體   English   中英

正則表達式:測試整個字符串

[英]Regex: Testing for entire string

我正在學習如何使用正則表達式,並且在處理此問題時遇到了一些困難。

假設我輸入了一個數字,並且如果該數字包含至少一個7,但不包含9s,則輸入對整個數字返回true。

例如: 123456789應該返回false,而12345678的輸入應該為12345678返回true。

為此應使用什么正則表達式?

我知道涉及術語7+[^9] ,但是我不完全確定如何在特定條件下使整數返回true( 7+[^9]對於123456 78輸入12345678返回true 9,當我想讓12345678返回true時。

對不起,如果我措辭不好。

您可以嘗試類似: ^[0-8]*7[0-8]*$

您可以肯定地提前聲明至少7個數字:

^(?=.*7)[0-8]++$

第一部分(?=.*7)是零寬度斷言,它測試至少存在7。它通過斷言模式.*7存在-即后跟7的任何東西來做到這一點。

第二部分[0-8]++檢查數字中的所有數字是否在0-8之間。 ++是一個或多個字符的所有格匹配。 因此,該數字必須至少為一位數字。

編輯

要處理@AbsoluteƵERØ的注釋,如果要確保數字是實數,即第一位不是零,則也可以斷言

^(?=.*7)(?!0)[0-8]++$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM