Существует ли утилита, которая преобразует POSIX в PCRE для PHP? [дубликат]

Минимальный пример

Вот пример того, что упомянул Цю.

В ОЗУ объем памяти является функцией размера слова и адреса.

Таким образом, если родительский модуль задает размер слова и адреса, он также не может указывать размер памяти.

module myram #(
    parameter WORD_SIZE = 1,
    parameter ADDR_SIZE = 1
) (
    input wire [ADDR_SIZE-1:0] addr,
    inout wire [WORD_SIZE-1:0] data,
    // ...
);
    localparam MEM_SIZE = WORD_SIZE * (1 << ADDR_SIZE);
    // Use MEM_SIZE several times in block.
...

И на родительском модуле это нормально:

module myram_tb;
    myram #(
        .ADDR_SIZE(2),
        .WORD_SIZE(2)
    ) top (
        /* wires */
    )

, но это должно быть ошибкой:

module myram_tb;
    myram #(
        .ADDR_SIZE(2),
        .WORD_SIZE(2),
        .MEM_SIZE(2)
    ) top (
        /* wires */
    )

iverilog не не получается, и я считаю, что это ошибка: https://github.com/steveicarus/iverilog/issues/157

Incisive выдает ошибку, как и ожидалось.

6
задан waiwai933 21 June 2009 в 22:09
поделиться

3 ответа

preg_match("/^#[01-9A-F]{6}$/", $sColor)
В этом случае вам нужно добавить только два разделителя.

В perl вы можете написать что-то вроде

if ( s =~ /x.+y/ )
{ print "match"; }
Как видите, реальное регулярное выражение инкапсулировано в //. Если вы хотите установить параметр в регулярном выражении, вы помещаете его после второго /, например, переключение выражения на неадекватное по умолчанию /x.+y/U
pcre теперь эмулирует это поведение. Хотя вам нужно вызвать функцию, вы также должны указать разделители и установить параметры после второго разделителя. В Perl разделитель должен быть /, с pcre вы можете более свободно выбирать
preg_match("/^#[01-9A-F]{6}$/", $sColor)
preg_match("!^#[01-9A-F]{6}$!", $sColor)
preg_match("#^\#[01-9A-F]{6}$#", $sColor) // need to escape the # within the expression here
preg_match("^#[01-9A-F]{6}$", $sColor)
, все равно pcre, лучше всего выбрать символ, который не появляется в выражении.
6
ответ дан 10 December 2019 в 02:52
поделиться

Между прочим, PHP поддерживает регулярные выражения как PCRE, так и POSIX. Вот раздел руководства PHP по регулярным выражениям POSIX, поэтому вам не нужно их преобразовывать: http://www.php.net/manual/en/book.regex.php

-1
ответ дан 10 December 2019 в 02:52
поделиться

preg_match ("/ ^ # [01-9A-F] {6} $ / D", $ sColor)

Обратите внимание на модификатор D . Люди все время об этом забывают. Без него $ разрешит последний символ новой строки. Строка типа "# 000000 \ n" пройдет. Это тонкое различие между POSIX и PCRE.

И, конечно же, [01-9] можно переписать на [0-9] .

.
4
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: