亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么[01-12]射程不能像預期的那樣工作?

為什么[01-12]射程不能像預期的那樣工作?

MYYA 2019-06-26 17:26:12
為什么[01-12]射程不能像預期的那樣工作?我在試著用范圍圖[01-12]在regex中匹配兩位數毫米,但這并不像預期的那樣工作。
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

您似乎誤解了regex中字符類定義的工作方式。

匹配任何字符串0102030405060708091011,或12,像這樣的東西起作用了:

0[1-9]|1[0-2]

參考文獻


解釋

字符類本身試圖匹配一個,也就是一個輸入字符串中的字符。[01-12]實際定義[012],一個字符類,它將輸入中的一個字符與這3個字符中的任何一個進行匹配。01,或2.

這個-范圍定義從11,其中包括1..另一方面,就像[1-9]包括123456789.

初學者經常犯定義如下的錯誤[this|that]..這“行不通”。此字符定義[this|a]中的6個字符中的任何一個與輸入中的一個字符匹配。this|a..極有可能(this|that)這就是我們的意圖。

參考文獻


如何定義范圍

所以現在很明顯,像這樣的模式between [24-48] hours不起作用。本例中的字符類等效于[248].

那是,-在字符類中,定義不定義模式中的數字范圍。除了有限的重復語法外,Regex引擎并不真正“理解”模式中的數字。a{3,5}3至5之間的比賽a).

范圍定義使用字符的ASCII/Unicode編碼來定義范圍。人物0在ASCII中編碼為十進制48;9是57歲。因此,字符定義[0-9]包括編碼中值介于小數48至57之間的所有字符。從設計上來說,這些都是非常明智的。01, ..., 9.

另見


另一個例子:A到Z

讓我們來看看另一個常見的字符類定義[a-zA-Z]

在ASCII:

  • A = 65, Z = 90

  • a = 97, z = 122

這意味著:

  • [a-zA-Z]

    [A-Za-z]

    等價物
  • 在大多數口味中,

    [a-Z]

    很可能是非法字符范圍
    • 因為

      a

      (97)“大于”

      Z (90)

  • [A-z]

    是合法的,但也包括以下六個字符:
    • [ (91), \ (92), ] (93), ^ (94), _ (95), ` (96)

相關問題


查看完整回答
反對 回復 2019-06-26
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

這也適用于:

^([1-9]|[0-1][0-2])$

[1-9]匹配1到9之間的個位數

[0-1][0-2]匹配10到12之間的兩位數

有一些很好的例子這里


查看完整回答
反對 回復 2019-06-26
  • 3 回答
  • 0 關注
  • 465 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號