在書能言善辯的JavaScriptchapter 9: Regular Expressions下節「解析INI文件」有一個例子,其中包括正則表達式。我不明白的。筆者試圖解析下一個內容:這兩個正則表達式有什麼區別? (理解?量詞)
searchengine=http://www.google.com/search?q=$1
spitefulness=9.7
; comments are preceded by a semicolon...
; each section concerns an individual enemy
[larry]
fullname=Larry Doe
type=kindergarten bully
website=http://www.geocities.com/CapeCanaveral/11451
[gargamel]
fullname=Gargamel
type=evil sorcerer
outputdir=/home/marijn/enemies/gargamel
在規則上這種格式的狀態
空白行和開始用分號行被忽略。
解析此內容的代碼遍歷文件中的每一行。爲了處理評論,他包括這種表達
^\s*(;.*)?
據我明白,這可能與的
空白字符的序列,包括空格,製表形式啓動該表達式的工藝線進料,進料線和其他 Unicode的空間
(source),直到它出現分號;,然後是一行「」除行結束符之外的任何單個字符:\ n,\ r,\ u2028或\「。所有這些僅限於{0,1}外觀。
我不明白量詞?在這裏。我無法找到(regex101)任何不限制匹配字符串外觀的情況。爲什麼這個表達與另一個不同:
^\s*(;.*)
在此先感謝。
鏈接頁面上的文本表示輸入首先被分割成多行,因此不使用多行模式,並且不存在用於匹配'\ s *'的換行符。 (這引起了我的注意。) –
好,我修改了*的答案(如果MULTILINE修飾符爲ON且輸入是包含多行的文本)*。這是未來讀者的一般注意事項。 –
謝謝。我錯過了,表達式也必須匹配空行。感謝您回答如此之快。 –