LINUX.ORG.RU

История изменений

Исправление loz, (текущая версия) :

Есть язык Red (и его прородитель Rebol) в которых вместо регулярок используется полноценный dsl встроенный в язык что намного мощнее, читабельнее, и вроде не сильно уступает по скорости. Например:

four:     charset "01234"
half:     charset "012345"
non-zero: charset "123456789"
digit:    union non-zero charset "0"

byte: [
      "25" half
    | "2" four digit
    | "1" digit digit
    | non-zero digit
    | digit
]
ipv4: [byte dot byte dot byte dot byte]

parse "192.168.10.1" ipv4

И можно выполнять код во время матчинга, например сохранить заматченный адрес в переменную:

parse data [some [copy value ipv4 | skip]]

Исправление loz, :

Есть язык Red (и его прородитель Rebol) в которых вместо регулярок используются полноценные dsl встроенные в язык что намного мощнее, читабельнее, и вроде не сильно уступает по скорости. Например:

four:     charset "01234"
half:     charset "012345"
non-zero: charset "123456789"
digit:    union non-zero charset "0"

byte: [
      "25" half
    | "2" four digit
    | "1" digit digit
    | non-zero digit
    | digit
]
ipv4: [byte dot byte dot byte dot byte]

parse "192.168.10.1" ipv4

И можно выполнять код во время матчинга, например сохранить заматченный адрес в переменную:

parse data [some [copy value ipv4 | skip]]

Исправление loz, :

Есть язык Red (и его прородитель Rebol) в которых вместо регулярок используются полноценные dsl встроенные в язык что намного мощнее, читабельнее, и вроде не сильно уступает по скорости. Например:

four:     charset "01234"
half:     charset "012345"
non-zero: charset "123456789"
digit:    union non-zero charset "0"

byte: [
      "25" half
    | "2" four digit
    | "1" digit digit
    | non-zero digit
    | digit
]
ipv4: [byte dot byte dot byte dot byte]

parse "192.168.10.1" ipv4

Исправление loz, :

Есть язык Red (и его прородитель Rebol) в которых вместо регулярок используются полноценные dsl встроенные в язык что намного мощнее, читабельнее, и вроде не сильно уступает по скорости. Например:

[code] four: charset «01234» half: charset «012345» non-zero: charset «123456789» digit: union non-zero charset «0»

byte: [
      "25" half
    | "2" four digit
    | "1" digit digit
    | non-zero digit
    | digit
]
ipv4: [byte dot byte dot byte dot byte]

parse "192.168.10.1" ipv4

[/code]

Исходная версия loz, :

Есть язык Red (и его прородитель Rebol) в которых вместо регулярок используются полноценные dsl встроенные в язык что намного мощнее, читабельнее, и вроде не сильно уступает по скорости. Например:

[code] four: charset «01234» half: charset «012345» non-zero: charset «123456789» digit: union non-zero charset «0»

byte: [
      "25" half
    | "2" four digit
    | "1" digit digit
    | non-zero digit
    | digit
]
ipv4: [byte dot byte dot byte dot byte]

parse "192.168.10.1" ipv4

[/code]