回答
[\w\W]
和[\d\D]
用于像JavaScript这样的语言,其中没有dotall选项。 它匹配所有字符,包括换行符,不像.
它匹配所有,但换行符。
\w\W or \d\D -> matches everything including newline characters
. -> matches everything except newline characters unless
's' (dotall modifier) is specified
(\d+|) or (\d+)? -> matches 1 or more digits OR any position (null)
It could simply be written as '(\d*)'
'multiline'和'dotall'完全不同。 '.'不会与只有'multiline'选项设置的换行符匹配。 –
应该只是说dotall。我的错误 –
我犯了一个错误,在第一行中错过了一个“+”。 – user1990553
第二个是挺有意思的,我想谈谈它的东西:
[\w\W]
和[\d\D]
是等价的,它们相当于[\s\S]
也。\W
是\w
的补码字符集,同样适用于\D
-\d
对和\S
-\s
对。因此,放在一起时,他们将毫无例外地匹配任何角色。它们通常用于没有构造“匹配任何字符,毫无例外”的情况。 JavaScript就是这种情况的一个例子。在
[^]
中也有一个不太知名且非常混乱的构造,在其他类型中通常无效。点
.
一般匹配任何字符,但新行\n
。根据不同的语言,它可能会排除更多的字符。对于Java,它排除
\n
,\r
,\u0085
,\u2028
,并\u2029
。所以.
相当于[^\n\r\u0085\u2028\u2029]
对于JavaScript,点
.
将排除\r
,\u2028
,并\u2029
除了\n
。所以.
相当于[^\n\r\u2028\u2029]
一些语言将有一个模式,使其
.
匹配任何字符,无一例外。它在Java和Python中被称为DOTALL
模式,在C#和Perl中被称为SingleLine
模式。
.
的行为因语言而异。一般而言,他们都同意在“正常”模式下排除\n
,但在选择排除更多时可能略有不同。
你没有说你正在使用哪种语言,所以我将假定Perl。
(\d+|)
相当于(\d*)
。它匹配0或更多位数的序列并将结果捕获到$1
。(\d)?
匹配0或1位数字。如果它匹配一个数字,它会将其放入$1
;否则$1
将是undef
(如果您想消除?
,则可以将其重写为(?:(\d)|)
)。[\w\W]
和[\d\D]
是等同的,匹配任何字符。.
默认等效于[^\n]
(匹配任何字符,但换行符)。如果你真的想匹配任何字符,你应该使用.
并指定/s
标志,这使得.
匹配任何字符。
- 1. 是什么,这些正则表达式
- 2. 这是什么正则表达式?
- 3. Lex这是什么正则表达式
- 4. 这是什么正则表达式?
- 5. 这是什么正则表达式?
- 6. 这将是什么正则表达式?
- 7. ,这是什么阵正则表达式
- 8. 这是什么javascript正则表达式?
- 9. 这将是什么正则表达式
- 10. 这是什么javascript正则表达式
- 11. 这些正则表达式是什么意思?
- 12. 这些正则表达式的含义是什么?
- 13. 什么是捕捉这些元素的正则表达式?
- 14. 这些qr {}正则表达式是什么意思?
- 15. JavaScript中这些正则表达式的含义是什么?
- 16. 这些Perl正则表达式是什么意思?
- 17. 什么是MySQL的SQL正则表达式这个表达式
- 18. 正则表达式的正则表达式是什么?
- 19. 这个正则表达式做什么?
- 20. 这个正则表达式做什么?
- 21. 这是什么Java正则表达式代码在做什么?
- 22. 这是什么javascript正则表达式在做什么?
- 23. 这些正则表达式为什么不按预期工作?
- 24. 这些正则表达式有什么区别
- 25. 这些在PHP正则表达式中做什么?
- 26. 什么正则表达式可以匹配这些数据?
- 27. Java正则表达式 - 这些部分各有什么作用?
- 28. 这些正则表达式为什么不同?
- 29. 为什么这些正则表达式的行为不同
- 30. 这个正则表达式的mod_security规则是干什么的?
选择什么? –
请参阅http://regex101.com/ – maerics
或http://rubular.com/ ...并选择最简单,最容易理解的。 –