我不是正则表达式的新手,我一直都在使用它们。除此之外,我只是不明白这个。这是完整的表达式:
/^(?:|{}I )am on (.+)\$/
除了(?:|{}I )
部分之外,我理解这个正则表达式中的所有内容,以及它在整个正则表达式的上下文中的关系。
非常感谢任何帮助。
答案 0 :(得分:8)
该部分匹配字符串最开头的子模式,可以是:
任何内容(?:
和|
之间的部分为空)或
一个开口大括号{
,后面跟着一个大括号}
,后跟一个字母I
,后跟一个空格字符。
?:
表示它无法捕获,因此第一个捕获的子模式为(.+)
,而不是(?:|{}I )
。
通常,{
和}
字符在正则表达式中用于量化某种模式(例如\d{0,5}
表示0到5位数),但在这种情况下它们没有特殊意思是因为它们之间没有数字或逗号。
关于整个正则表达式,我猜测它应该匹配一个字符串,该字符串以“am on ...”开头,或“{}我在......”,尽管我没有想法为什么需要花括号或为什么$
在最后用\
进行转义。