Regex acrescenta uma string a uma parte da correspondência

1

Eu acho isso muito difícil de fazer, a coisa é a seguinte:

Eu tenho uma string no formulário:

GlobalParameters::$docId = DocList::$PARTNERS;

E eu quero acrescentar a string _VIEW ao final do símbolo. O problema é que eu quero não apenas combinar PARTNERS , mas qualquer outro símbolo também, então eu tentei este regex:

Encontrar:

GlobalParameters\:\:\$docId\ \=\ DocList\:\:\$(.*)\;

Substitua por:

GlobalParameters\:\:\$docId\ \=\ DocList\:\:\$(.*)_VIEW\;

Mas acabei de receber:

GlobalParameters::$docId = DocList::$(.*)_VIEW;

Em todos os jogos. Como posso contornar isso?

    
por arielnmz 09.12.2014 / 21:32

2 respostas

0

A principal coisa errada é que o campo correspondente delimitado por ( e ) precisa ser identificado por na string de substituição:

GlobalParameters\:\:\$docId\ \=\ DocList\:\:\$_VIEW\;

Também é importante notar que, embora sua implementação Geany não tenha esse padrão, muitos programas que usam expressões regulares usam como padrão o modo BRE (Basic Regular Expression), que exige que \( e \) delimitem a subexpressão de pesquisa. , como em:

GlobalParameters\:\:\$docId\ \=\ DocList\:\:\$\(.*\)\;

Observação: Geany a partir da versão v1.24 não precisa que os parênteses tenham escape, então você precisa apenas de ( e ) para delimitar os campos correspondentes.

Outras seqüências de caracteres de pesquisa e substituição mais simples ocorrem para mim, mas sem ver o contexto de outras strings no arquivo, não tenho certeza do que pode ser satisfatório. No entanto, o seguinte deve ser OK: -

Pesquisa:

\(GlobalParameters\:\:\$docId\ \=\ DocList\:\:\$.*\)\;

Substituir:

_VIEW\;

Aqui, toda a cadeia de caracteres, além do ; correspondente, é correspondida e _VIEW é anexada.

    
por 09.12.2014 / 22:12
0

Para estender a resposta da AFH, fiz um exemplo mais complexo:

Sequência a ser modificada:

abc: 123

Pesquisa:

(abc)\: (123)

Substituir (1def será acrescentado à primeira expressão de correspondência e 456 à segunda):

def 56

Resultado:

abcdef 123456
    
por 15.01.2016 / 13:52

Tags

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '465520',
    'url' => 'regex-append-a-string-to-a-part-of-the-match',
];

$_COOKIE = [
    'advanced-frontend' => 'aaac8pir6co0hjrbqn29unbspf',
    '_csrf-frontend' => '9254150dca00af8cc56db4122405eedc7466e67328c54711e5fc35c16d952205a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"CKf7jkLJnVUcMOAc8GjxeCApCjsLiDFc";}',
];

$_SESSION = [
    '__flash' => [],
];