在书能言善辩的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且输入是包含多行的文本)*。这是未来读者的一般注意事项。 –
谢谢。我错过了,表达式也必须匹配空行。感谢您回答如此之快。 –