A aparência de regex afeta a correspondência subseqüente?
Eu estava brincando com expressões regulares e me deparei com algo que não entendo.
Eu esperaria esta expressão regular:
(?=1)x
para corresponder a esta sequência:
"x1"
Mas isso não acontece. Em ruby, o código se parece com:
> "x1".match /(?=1)x/
=> nil
Aqui está o que eu esperava que acontecesse:
Começamos com o cursor do analisador de expressões regulares em "x".O mecanismo regexp procura na string "1" e obtém uma correspondência. O cursor ainda está no "x"O mecanismo regexp procura por "x" e o encontra, pois o cursor não se moveu.Sucesso! Lucro!Mas aparentemente estou enganado, porque não é compatível. Alguém poderia me dizer onde eu errei?
Aliás, notei que, se o padrão correspondido pela cabeça de impressão contiver os caracteres que estou correspondendo na expressão subsequente, ele funcionará. ie(?=x)x
fósforosx1
bem. Suspeito que essa seja a chave do mistério, mas não estou entendendo. :)