正規表示式 1 9和10有什麼區別

2022-02-23 15:27:33 字數 4168 閱讀 3909

1樓:匿名使用者

和括號無關

某種意義上來說其實這兩種是等效的(一會兒有詳細說),只不過樓主的寫的不嚴謹!

如果樓主想匹配的是1-10,那我來猜猜樓主的幾種寫法:(專講數字,不講字串)

第1種:/10|[1-9]/; 這種寫法的特點在哪呢?這個正則其實匹配的是除0以外的所有正整數,為什麼?

因為[1-9]說的是只要驗證的這個數包含1到9的任意數字,均會返回true。"10|"是多餘的,沒有這個也是能返回true。

第2種:/[1-9]|10/; 這種情況同第1種,不多說,匹配的是除0以外任何數。

第3種:/^10|[1-9]$/; 這種寫法較第1種成熟些,但仍不嚴謹,因|的優先順序較弱,所以可以這麼理解,以10開頭,或者[1-9]結尾,也就是說匹配尾數不為0的任何數,20,30,....10000,但由於^10,所以,10可以匹配。

第4種:/^[1-9]|10$/; 這種寫法在理解上,同第3種,只不過匹配的是以1到9中任意數為開頭的數字。想一想,除了0,哪些數字是以1,2...9開頭的數字?所有數!

第5種/^(10|[1-9])$/; 這種才是匹配1-10的正確寫法!效果同/^([1-9]|10)$/;

既然是正確的就沒什麼好說的了

呵呵,樓主自己再努力考慮考慮。

===================

啊哦,打完才發現0分~ 呃....-_-! 賺人氣,賺人氣,哈哈,支援的按下大拇指,謝謝。

2樓:陽光上的橋

要加上括號,例如:(10)|[1-9]

你的10|[1-9]機器理解為1+0|[1-9],或者|前後只結合乙個符號

3樓:匿名使用者

1.可以不加括號,|的優先級別最低

2.|含義是,該符號前面匹配成功後就不會再繼續匹配後面的了,所以[1-9]就可以匹配兩次1和0,不會繼續匹配10了

所以[1-9]|10改造為下面的就對了

\b[1-9]\b|\b10\b

4樓:匿名使用者

你的寫法不嚴謹所致 正則是比較貪婪的 ^([1-9]10)$ 就對了

這個正規表示式是什麼意思?^(?=[1-9])(?=.[a-z]).{10,12}$

5樓:匿名使用者

/^[-.-_a-za-z0-9]+@([_a-za-z0-9]+\.)+[a-za-z0-9]$/

分成2部分,@之前和之後

@之前^[-.-_a-za-z0-9]+ 表示允許出現- . _ 和字母數字這些,且必須大於1個字元,字數無上限,而且他們出現的位置都不限

@之後([_a-za-z0-9]+\.)+[a-za-z0-9]$

([_a-za-z0-9]+\.)+ 表示允許大於1個字母數字出現,後面跟 .

[a-za-z0-9] 表示允許2個或3個字母數字的組成的單詞出現

下面的驗證,根據你的修改了一些

/^[^\_][\w\-\.]+@[\w\.]+[\w]$/

@之前^[^\_][\w\-\.]+ 排除下劃線出現在使用者名頭位置,\w表示所有字母和數字,下劃線

後面都差不多意思

------------------------------------

不好意思,沒注意到你的補充,現在才看到

1.我的**裡最前面的/^是表示正規表示式的開始的吧?

a: 是的,^是開始符號 $是結束符號

2.按我的**,第二個橫線是不是可以去掉,而且原意不變?(我試過,去掉第乙個不可以,去掉第二個**能正常執行),如果不可以去掉那麼要它有什麼用?

我試過用/^[-.-_-----a-za-z0-9]+@([_a-za-z0-9]+\.)+[a-za-z0-9]$/這個**也能用,也就是說從我那裡的第三個橫線開始加多少個都可以。

3.df.-.

[email protected].

aa.bbbbbbbbb這個字串可以在你的表示式裡通過,這個違背了,我之前的意思:及最後乙個單詞後面只能是兩個或三個字母。

a:倆個短橫線保留乙個就可以了,不能去掉第乙個的原因是第二個短橫線-應該被當成連線符了,就想a-z這樣的中間的鏈結符,你去掉第乙個的話,在第二個短橫線那裡加個反斜槓\就好了

你提出的錯誤確實是存在,應該是[\w.]+這裡出問題了,這裡面的是可選的,而不是必須的,所以在匹配bbbbbbbbb的時候在[\w.]+這裡成功,最後的[\w]沒起到作用,造成了這個錯誤,我改了一下,這樣在沒有到字串末尾時連線點.

就成為必須字元

/^[^\_][\w\-\.]+@([\w]+\.)+[\w][^\_]$/

6樓:明耳清思

我來回答一下,這個正規表示式字面上的意思的驗證必須由乙個數字加乙個大寫字母開頭的10-12長度的字串。

^表示開始,()表示子表示式,^(?=[1-9])(?=.

[a-z])表示開始後面必須接乙個數字(範圍1-9),數字後面必須接乙個大寫字母(範圍【a-z】),.表示任意字元,{}表示長度限制,$表示結束。

邏輯圖見網頁鏈結

正規表示式 1-9任意數字

7樓:匿名使用者

[1-9] 沒問題。

如果原來的字元已經是數字,只是排除 0:

[^0]

8樓:雪兒歡樂多

[1-9] 沒問題。 如果原來的字元

已經是數字,只是排除 0。

數字分好幾種,阿拉伯數字是最普遍的一種。但其實阿拉伯數字並不是阿拉伯人發明的,而是古印度人發明的,只是先傳播到阿拉伯,然後再發揚到全世界,所以稱為「阿拉伯數字」。在古代印度,進行城市建設時需要設計和規劃,進行祭祀時需要計算日月星辰的執行,於是,數學計算就產生了。

⼤約在西元前3000多年,印度河流域居⺠的數字就⽐較先進了,⽽且採⽤了十進位的計算⽅法。到西元前三世紀,印度就出現了整套的數字,其中最有代表性的是婆羅⻔式,是當時⽐較常⽤的。現代數字就是由這⼀組數字演化⽽來的。

9樓:沐雨莀風

正規表示式(regular expression)描述了一種字串匹配的模式(pattern),可以用來檢查乙個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。

例如:runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 號代表前面的字元必須至少出現一次(1次或多次)。

runoo*b,可以匹配 runob、runoob、runoooooob 等,* 號代表前面的字元可以不出現,也可以出現一次或者多次(0次、或1次、或多次)。

colou?r 可以匹配 color 或者 colour,? 問號代表前面的字元最多隻可以出現一次(0次、或1次)。

構造正規表示式的方法和建立數學表示式的方法一樣。也就是用多種元字元與運算子可以將小的表示式結合在一起來建立更大的表示式。正規表示式的元件可以是單個的字元、字元集合、字元範圍、字元間的選擇或者所有這些元件的任意組合。

正規表示式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜尋文字時要匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。

10樓:箋児

正規表示式 1-9任意數字:[1-9] 。

11樓:大地飛鷹

1。公元500年前後,隨著經濟、文化以及佛教的興起和發展,印度次大陸西北部的旁遮普地區的數學一直處於領先地位,起源於印度。天文學家阿葉彼海特在簡化數字方面有了新的突破:

他把數字記在乙個個格仔裡,如果第一格里有乙個符號,比如是乙個代表1的圓點,那麼第二格里的同樣圓點就表示十,而第三格里的圓點就代表一百。

這樣,不僅是數字符號本身,而且是它們所在的位置次序也同樣擁有了重要意義。印度的學者又引出了作為零的符號。可以這麼說,這些符號和表示方法是今天阿拉伯數字的老祖先了。

大約700年前後,阿拉伯人征服了旁遮普地區,他們吃驚地發現:被征服地區的數學比他們先進。後來,阿拉伯人把這種數字傳入西班牙。

公元10世紀,又由教皇熱爾貝·奧里亞克傳到歐洲其他國家。

公元2023年左右,歐洲的學者正式採用了這些符號和體系。至13世紀,在義大利比薩的數學家費婆拿契的倡導下,普通歐洲人也開始採用阿拉伯數字,15世紀時這種現象已相當普遍。那時的阿拉伯數字的形狀與現代的阿拉伯數字尚不完全相同,只是比較接近而已,為使它們變成今天的1、2、3、4、5、6、7、8、9、0的書寫方式,又有許多數學家花費了不少心血。

在正規表示式中什麼意思,正規表示式中的 或 是什麼意思?

非獲取匹配,匹配冒號後的內容但不獲取匹配結果,不進行儲存供以後使用。單獨的 匹配前面的子表示式零次或一次。當 緊跟在任何乙個其他限制符 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少地匹配所搜尋的字串,而預設的貪婪模式則盡可能多地匹配所搜尋的字串。擴充套件資料正規表示式是對字串 包括普通字元 例如,...

jsp中的表示式和表示式有什麼區別

舉個例子更能說明問題 string username abc 下面兩句 是一樣的效果,標識裡面的是jsp 變數 是 out.println 變數 的簡寫方式 使用者 username 使用者 out.println username 是輸出語句,將表示式結果轉換成字串,在頁面輸出 是jsp 片段,在...

物理中公式,定義式,決定式,表示式有什麼區別

定義式是根抄據物理量的定義寫成 襲的數學表示式.根據物理量的產生和變化由哪些因素決定而寫成的數學式是決定式.例如,電阻r由它的材料 用電阻率 表示 長度l和橫截面積s決定,電阻的決定式為 再如做功w由力f和距離s兩個因素決定.功的公式為 這也就是功的決定式.決定式還有一些,例如液體壓強公式 質量公式...