/([^.]*)\.(.*)/是什么意思?

Jam*_*lph 8 regex

当我搜索某些内容时,我在这个网站上找到了一个已回答的问题.其中2个答案包含

/([^.]*)\.(.*)/

他们的答案.问题位于查找和替换jquery.我是javascript的新手,所以我想知道,这是什么意思?谢谢.

Veg*_*sen 31

/([^.]*)\.(.*)/
Run Code Online (Sandbox Code Playgroud)

让我们解构它.开始和结尾斜杠是分隔符,标记正则表达式的开头和结尾.

然后是一个带括号的组:([^.]*)parentheseis只是将一个字符串组合在一起.方括号表示"字符组",表示该组中的任何字符都被接受.然而,这个群体被第一个角色所否定^,这颠倒了它的意义.由于否定旁边的唯一字符是句点,因此匹配不是句点的单个字符.方括号*后面是(星号),这意味着方括号可以匹配零次或多次.

然后我们到了\..这是一个逃脱的时期.正则表达式中的句点具有特殊含义(转义时或字符组中除外).这与文本中的文字句点匹配.

(.*)是一个新的禁止子组.这一次,句点匹配任何字符,星号表示可以根据需要重复多次.

总之,表达式查找任何字符序列(不是句点),后跟一个句点,后面跟着任何字符.

编辑:删除了有关缩短的部分,因为它违背了正则表达式的假定目的.

  • 不仅仅是提高可读性,这种方法还是破坏了正则表达式的目的.哪个可能在第一个周期之前和之后提取字符串的部分. (3认同)

jas*_*son 8

它是一个正则表达式(它匹配非句点,后跟一个句点后跟任何句子(想想"file.ext")).你应该跑步,而不是走路,去了解它们.解释这个特定的正则表达式如何工作并不会对你有所帮助,因为你需要开始更简单.所以从正则表达式教程开始,选择掌握正则表达式.


Rak*_*yal 6

原版的: /([^.]*)\.(.*)/

将其拆分为:
[1] ([^.]*) :表示匹配除. [ period ]
[2] 以外的所有字符\. :匹配句点
[3] (.*):匹配任何字符

所以它变为[1]匹配所有不是. [ period ] [2]的字符,直到找到.[ period ]然后[3]匹配所有字符.


Joh*_*don 3

它是一个正则表达式,粗略地搜索不包含句点的字符串,后跟句点,然后是包含任何字符的字符串。