我看到一本书的描述......
书中说/^Apple/匹配的字符串在字符串的开头有一个Apple.所以它会匹配Apple Apple1 AppleApple AppleABC......
书中还说/Apple$/会匹配字符串中有一个Apple的字符串.所以它会ABCApple 12345Apple像那样......
但这本书说/^Apple$/只会匹配Apple.但我很困惑,我认为/^Apple$/应该匹配字符串"Apple"的开头和字符串"Apple"的结尾,所以AppleabcApple应该匹配,所以我很困惑.
nne*_*neo 11
^表示字符串(或行,取决于您的正则表达式引擎)的开头.$表示字符串的结尾.这些匹配就像任何字母或数字一样,但匹配"开头"和"结束"而不是特定字符.
所以,^Apple意思是"在字符串开头之后,必须有一个Apple".Apple$意思是" Apple必须在字符串结尾之后".因此,^Apple$意味着"在字符串开头之后是Apple,之后是字符串的结尾" - 因此,^Apple$只能匹配包含完全Apple没有其他内容的字符串.
如果你想匹配一个开头和结尾的字符串Apple,你可以写
/^Apple.*Apple$/
Run Code Online (Sandbox Code Playgroud)
(如果你想匹配,可以重叠本身,像绳子事情变得更加复杂eraser(如匹配eraseraser) -如果你的正则表达式引擎允许的话,你可以尝试混合超前/回顾后:^(?=eraser).*(?<=eraser)$)
相反的思维^和$作为在开始或结束字符串匹配的话,分别想^和$为不可见的字符是在字符串,您可以在正则表达式匹配的开始和结束.
搜索apple$意味着您正在查找apple紧跟字符串结尾"字符"的字符串.和类似的概念^.
因此,要匹配^apple$,字符串的开头必须紧跟在 'apple' 之前,并且结尾必须紧跟在 'apple'之后.
如果你真的想匹配一个以Apple开头或以Apple结尾的字符串,那么请使用这个正则表达式:
/^Apple|Apple$/
Run Code Online (Sandbox Code Playgroud)