具有以下正则表达式:
(?(?<=\AA)a|e)/g
和测试字符串:
Aa
Ae
Be
它匹配a
(行 #1)、e
(行 #2)、e
(行 #3)。我认为它应该只匹配a
(行 #1),因为有 3 行但只有一个字符串 - 仅\AA
匹配A
一次 (在字符串的第一行),因此应用仅在第一行a
匹配的模式。a
答案1
它不应该只匹配
a
(第 1 行)吗?
不。
您当前的表情翻译成英文:
?(?<=\AA)
- 如果当前字符位于字符串开头并且 A- 然后匹配
a
-这将a
在第一行匹配 - else (= 任何其他情况) 匹配
e
- 这将e
在第 2 行和第 3 行匹配
- 然后匹配