感谢大家的回复。
我想我必须稍微调整我的第一个问题。 由于$符号的定义,我有点困惑。 它只是声称在字符串的最后有6到10个字符。
就是这样!对?然后,在我看来,它必须与我的测试字符串"123a56A781231231231241"
匹配。因为它不违反规则! 6-10字符串在字符串的最开始,在字符串的最后。完美,不是吗?
另外,我想知道^(?=\w{6,10}$)
和^(?=\w{6,10})$
之间的区别。
一个,卡西米尔等伊波利特你说的+并不能改变什么,这仅仅意味着量词({6,10}这里)是占有欲,不允许回溯。 这是否意味着+符号使$符号禁用?
谢谢你们提前。
在我进一步探讨之前,我想让大家知道,自从我开始学习正则表达式仅仅两天了。我是完全新手。
首先。 ^(?=\w{6,10}$)
这是模式。为什么美元信号必须在()
之内?我知道这是一个愚蠢的问题,但我很好奇。我试图找到()
以外的美元符号。但它没有像我预期的那样工作。
二。我发现了几个教程网站和它说的美元符号意味着
“
$
可以在模式的结尾似乎需要的匹配一行的最后出现。例如,abc$
比赛123abc
但不abc123.
“
所以$
被用来断言字符串匹配的部分是在一行的末尾。对?
如果是真的,为什么这个模式:"^(?=\w{6,10}$)"
不能与我的测试字符串匹配:"123a56A781231231231241"
。
如您所见,我的测试字符串在一行的最开始处包含6〜10个单词字符,并且在行的最末尾处包含6〜10个单词字符。
三。正如我前面提到的,这种模式:^(?=\w{6,10}$)
不能与我的测试字符串匹配:"123a56A781231231231241"
但是!如果我在\w{6,10}
后面添加+
后面的符号,如^(?=\w{6,10}+$)
它可以工作。 是因为+
符号是占有欲?我的意思是,据我所知,+符号告诉发动机在比赛结束后不要回溯。所以我冒险猜测,美元符号并没有做他的工作,因为它甚至没有回溯(当然,我不知道这一点,因为我不知道$符号是如何工作的)。这样对吗?
_it未按预期工作._这是什么意思?它做什么与你期望它做什么? – Mathletics
你应该检查这个网站:http://www.debuggex.com/它可以让你直观地看到你的表情发生了什么。非常酷的网站。 –
我测试过perl和'^(?= \ w {6,10} + $)'不适用于字符串'123a56A781231231231241'(这很有意义,因为'+'是占有欲) – doubleDown