Re: back references using regex
От | Douglas McNaught |
---|---|
Тема | Re: back references using regex |
Дата | |
Msg-id | m2slwdcdum.fsf@Douglas-McNaughts-Powerbook.local обсуждение исходный текст |
Ответ на | Re: back references using regex (Matthew Peter <survivedsushi@yahoo.com>) |
Ответы |
Re: back references using regex
|
Список | pgsql-general |
Matthew Peter <survivedsushi@yahoo.com> writes: > One other thing, when I wrote back I actually used > 34.31.29.20 (random), not 12.00.00.34 like i showed in > the example, which is why i said it didn't work on > digits. > > SELECT substring('34.31.29.20' FROM $$((\w+)\.\2)$$); > substring > ----------- > > (1 row) > > little did i know writing it with 12.00.00.34 would > return 00.00... so yes, that did suprise me. > Apparently only using the identical values returns a > value. so it's saying x+ one more of the same value > separated by a period... where shouldn't it be any > "letter, number or underscore" followed by any > "letter, number or underscore"? Backreferences match the exact string matched by the corresponding set of parentheses. It's not the equivalent of substituting in the parenthesized part of the regex and testing that for a match. The behavior above is as expected. If you want it as "any followed by any" you shold write the regex as '((\w+)\.(\w+))' -- then the two parts can differ. -Doug
В списке pgsql-general по дате отправления: