这些正则表达式之间的区别是什么?
What's the difference between these regexes
我正在阅读Ionic的源代码。我遇到了这个正则表达式,我很困惑。
(['s'S]+?)
好的,它对每个字符进行分组,无论是空白还是非空白??
他们为什么不直接做呢
(.+?)
我错过了什么吗?
.
匹配除换行符以外的任何符号。为了使它与换行符匹配,在大多数语言中都有一个修饰符(点高,单行)。然而,在JS中,没有这样的修饰符。
['s'S]
字符类,它将匹配任何字符,包括换行符,因为's
将匹配所有空白字符,而'S
将匹配所有非空白字符。同样,可以使用['d'D]
或['w'W]
。
同样,在JS中有一个[^]
模式来匹配相同的东西,但由于它是javascript特定的,包含该模式的正则表达式不能在不同的正则表达式之间移植。
+?
惰性限定词匹配符合前一子模式的1个或多个符号,但尽可能少。因此,如果像这样使用,它将只匹配一个符号,在模式的末尾。
在许多Regexp实现中,"."不匹配新行。所以他们用"['s' s]"作为一个小技巧=)
.
匹配除换行符以外的所有字符。这实际上是javascript中一个众所周知的问题。's
(空白匹配)与其否定'S
(非空白匹配)一起提供了包括换行符在内的dotall
匹配。因此,['s'S]
通常比.
使用得更频繁
他们使用的RegEx包含更多字符(基本上是所有字符)。
's
匹配任何单词或数字字符或空白。
'S
匹配除数字、字字符或空格以外的任何内容
正如Casimir所说:
.
匹配除换行符('n
)以外的任何字符
.
匹配任何字符,除了回车/r
和换行/n
[/s/S]
(空白和非空白)的最短方法是[^]
(不是没有)
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- knex:根据结果创建数组的合适方法是什么
- emu -model、emu -restless和emu之间的主要区别(优缺点)是什么?
- function()在jQuery中是什么意思?这个和$(这个)有什么区别