感謝大家的回覆。
我想我必須稍微調整我的第一個問題。 由於$符號的定義,我有點困惑。 它只是聲稱在字符串的最後有6到10個字符。
就是這樣!對?然後,在我看來,它必須與我的測試字符串"123a56A781231231231241"
匹配。因爲它不違反規則! 6-10字符串在字符串的最開始,在字符串的最後。完美,不是嗎?
另外,我想知道^(?=\w{6,10}$)
和^(?=\w{6,10})$
之間的區別。
一個,卡西米爾等伊波利特你說的+並不能改變什麼,這僅僅意味着量詞({6,10}這裏)是佔有慾,不允許回溯。 這是否意味着+符號使$符號禁用?
謝謝你們提前。
在我進一步探討之前,我想讓大家知道,自從我開始學習正則表達式僅僅兩天了。我是完全新手。
首先。 ^(?=\w{6,10}$)
這是模式。爲什麼美元信號必須在()
之內?我知道這是一個愚蠢的問題,但我很好奇。我試圖找到()
以外的美元符號。但它沒有像我預期的那樣工作。
二。我發現了幾個教程網站和它說的美元符號意味着
「
$
可以在模式的結尾似乎需要的匹配一行的最後出現。例如,abc$
比賽123abc
但不abc123.
「
所以$
被用來斷言字符串匹配的部分是在一行的末尾。對?
如果是真的,爲什麼這個模式:"^(?=\w{6,10}$)"
不能與我的測試字符串匹配:"123a56A781231231231241"
。
如您所見,我的測試字符串在一行的最開始處包含6〜10個單詞字符,並且在行的最末尾處包含6〜10個單詞字符。
三。正如我前面提到的,這種模式:^(?=\w{6,10}$)
不能與我的測試字符串匹配:"123a56A781231231231241"
但是!如果我在\w{6,10}
後面添加+
後面的符號,如^(?=\w{6,10}+$)
它可以工作。 是因爲+
符號是佔有慾?我的意思是,據我所知,+符號告訴發動機在比賽結束後不要回溯。所以我冒險猜測,美元符號並沒有做他的工作,因爲它甚至沒有回溯(當然,我不知道這一點,因爲我不知道$符號是如何工作的)。這樣對嗎?
_it未按預期工作._這是什麼意思?它做什麼與你期望它做什麼? – Mathletics
你應該檢查這個網站:http://www.debuggex.com/它可以讓你直觀地看到你的表情發生了什麼。非常酷的網站。 –
我測試過perl和'^(?= \ w {6,10} + $)'不適用於字符串'123a56A781231231231241'(這很有意義,因爲'+'是佔有慾) – doubleDown