JS中的一个正则表达式
A regular expression in JS
你能帮我理解以下regexp的含义吗:
(?:.*? rv:(['w.]+))?
所以,
(?: //the pattern must be in a string, but doesn't return
. //any Unicode character except newline
* //zero or more times
? //zero or one time (how is *? different from just *)
rv: //just "rv:" apparently
['w //any digit, an underscore, or any Latin-1 letter character
.] //...or any unicode character (are Latin-1 characters not Unicode?)
..))? //all that zero or one time
它来自《最终指南》,我讨厌那本书。一些与regexp匹配和不匹配的示例将不胜感激。
正则表达式为:
(?: # begin non capturing group
.*? # any character, zero or more times, but peek and stop if the next char is
# a space (" "); then look for
rv: # literal "rv:", followed by
( # begin capturing group
['w.] # any word character or a dot (the dot HAS NO special meaning in a character class),
+ # once or more,
) # end capturing group
) # end non capturing group
? # zero or one time
*?
是所谓的惰性量词,它迫使正则表达式引擎在吞下一个字符之前先查看下一个字符——它被使用、过度使用和滥用,这是一种情况:由于下一个角色是一个文字空间,它必须被[^ ]*
(任何不是空格的东西,零次或多次)取代,从而完全避免了前瞻。
确定性。正确的
相关文章:
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如何生成一个正则表达式,用以这种方式命名的类的属性值替换标记{{name}}
- 我该如何编写一个正则表达式来捕获具有特定类的HTML表
- 我该如何编写一个正则表达式来匹配字符串后面的值(到下一个逗号)
- 如何创建一个正则表达式来拆分行,除非有斜杠
- 如何编写一个正则表达式,匹配除左括号和右括号以及它们之间的任何内容之外的所有内容
- 需要一个正则表达式来过滤掉除一个小数点之外的所有内容
- 寻找一个正则表达式来解析 JS 的参数字符串
- Javascript 匹配一个正则表达式,但不匹配另一个
- Javascript 正则表达式:无论如何都可以编写一个正则表达式,如果反向引用不匹配,则给出 true
- 使用一个正则表达式分析复杂字符串
- 找到一个正则表达式来检查字母,汉字和斜杠(/)
- 需要一个正则表达式,该表达式除了AlphaNumeric _-()之外.和javascript中的空格
- 我该如何编写一个正则表达式来接受任何输入字符串并只输出字母
- JS中的一个正则表达式
- 您将如何构建一个正则表达式,将段落拆分为句子,但不拆分<>内的任何标点符号
- 动态地为ng-pattern创建一个正则表达式,仅用于范围内的数字
- 如何匹配一个正则表达式,如果它完全匹配
- 需要一个正则表达式,确保数字以01 02或08开头,长度为10或11位
- Javascript将一个正则表达式字符串转换为一个类型对象