在正则表达式中:
var r = new RegExp('^[^%"]*$');
^
和$
表示什么?这是否意味着字符串的开头和结尾或其他内容。
如果我删除^
和$
之类的内容,那该怎么办?
var r = new RegExp('[^%"]*');
这是一个有效的正则表达式吗?
答案 0 :(得分:2)
^和$表示什么?这是否意味着字符串的开头和结尾 别的什么。
在[]
字符类之外,^
匹配行的开头,$
匹配行的结尾。在[]
字符类中,^
(在类的开头使用时)表示计算不在字符类中的任何字符。
另外如果我删除^和$之类的东西:var r = new RegExp('[^%“] *');?这是一个有效的正则表达式吗?
是的,这是有效的,只是因为在否定匹配的任一侧可能有字符,并且*
匹配定义的字符类的0或更多字符,所以它不会有多大成就。
使用类似regex101.com to test your expressions and play around的内容。
答案 1 :(得分:0)
是'^'和'$'分别表示字符串的结尾。至少在一个角色类之外。在一个字符类^意味着没有,所以它将不匹配那些否定的字符(在这种情况下%和单引号)
如果您删除了^
和$
,那么正则字符串可能会通过,即使字符串中包含%或“,其他字符
实施例
"\"50\"%".match(/^[^"%]*$/); // equals null
"\"50\"%".match(/[^"%]*/); //equals [""]
"\"50\"%".match(/[^"%]*/g); //equals ["", "50", "", "", ""]
同样在JS中,最佳做法是使用/ some regex / gm而不是新的Regex(“Some regex”)来创建正则表达式
答案 2 :(得分:0)
可以使用^
标记值更改$
和m
的含义。
m
标记,^
和$
将分别匹配行的开头和结尾。m
标记,^
和$
将分别匹配整个字符串的开头和结尾。由于图像优于1000个单词,因此这里是正则表达式:
^[^%"]*$
[^%"]*