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

时间:2009-12-04 04:14:54

标签: regex

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

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

他们的回答。 问题位于Find & replace jquery。我是javascript的新手,所以我想知道,这是什么意思?感谢。

12 个答案:

答案 0 :(得分:30)

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

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

然后有一个带括号的组:([^.]*)括号内容只是将一个字符串组合在一起。方括号表示“字符组”,表示该组中的任何字符都被接受。但是,这个组被第一个字符^否定,这反过来意味着它。由于否定旁边的唯一字符是句点,因此匹配不是句点的单个字符。方括号后面是*(星号),这意味着方括号可以匹配零次或多次。

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

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

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

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

答案 1 :(得分:8)

它是regular expression(它匹配非句点,后跟句点后跟任何句子(想想“file.ext”))。你应该跑步,而不是走路,去了解它们。解释这个特定的正则表达式如何工作并不会对你有所帮助,因为你需要开始更简单。所以从regex tutorial开始,然后选择Mastering Regular Expressions

答案 2 :(得分:5)

原文:/([^.]*)\.(.*)/

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

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

答案 3 :(得分:4)

除了点之外的任何东西,后跟一个点,然后是任何东西。

您可以在regexpal

上测试正则表达式

答案 4 :(得分:3)

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

答案 5 :(得分:2)

这是一个正则表达式。正则表达式是强大的工具,如果你正确使用它们。

该特定正则表达式从一个看起来像“file.ext”的字符串中提取文件名和扩展名。

答案 6 :(得分:2)

这是一个正则表达式,它将一个字符串分成两部分:第一个句点之前的所有内容,然后是其余部分。大多数正则表达式引擎(包括Javascript引擎)允许您分别访问字符串的那些部分(使用$ 1表示第一部分,$ 2表示第二部分)。

答案 7 :(得分:1)

这是一个具有一些高级用法的正则表达式。

考虑一个更简单的版本:/[^.]*\..*/,它与上面没有圆括号相同。这将匹配任何至少有一个点的字符串。添加括号并发生匹配后,变量\1\2将包含括号中匹配的部分。第一个点之前会有第一个点。第二部分将包含第一个点之后的所有内容。

示例:

input: foo...bar
\1: foo
\2: ..bar

input: .foobar
\1:
\2: foobar

答案 8 :(得分:1)

此正则表达式生成两个可以检索的匹配表达式。

这两部分是第一个点之前的字符串(可能是空的),第一个点之后的字符串(可能包含其他点)。

输入的唯一限制是它至少包含一个点。它将匹配“。”与其他一些答案相反,但是重复的团体将是空的。

答案 9 :(得分:0)

这是一个正则表达式,它基本上是一种用于描述另一种字符模式的字符模式。我曾经使用正则表达式在文本文件中查找电子邮件地址,并且只要正确编写正则表达式,它们就可以用来查找大量文本中的几乎任何文本模式。

答案 10 :(得分:0)

IMO /.*\..*/g将做同样的事情。

const senExample = 'I am test. Food is good.';
const result1 = senExample.match(/([^.]*)\.(.*)/g);
console.log(result1); // ["I am test. Food is good."]
const result2 = senExample.match(/^.*\..*/g);
console.log(result2); // ["I am test. Food is good."]

答案 11 :(得分:-2)

。字符匹配除\换行符之外的任何字符\ r或\ n。

^否定它后面的内容(在这种情况下是点)

*表示“零次或多次”

圆括号组和捕获,

\允许您匹配特殊字符(如点或星)

所以这个([^.]*)表示任何换行重复零次或多次(它只是吃掉回车)。

(.*)部分表示任何字符串为零次或多次(换行符除外)

\.表示真正的点

所以整个事情会匹配零个或多个换行符后跟一个点后跟任意数量的字符。

有关正则表达式的更多信息和非常好的参考,请查看:http://www.regular-expressions.info/reference.html