Non riesco a trovare un riferimento ufficiale per le regole di precedenza per Perl regular expressions. Quello che posso trovare è solo Know the precedence of regular expression operators. Tuttavia, non è un riferimento ufficiale dato da perldoc.Quali sono le regole di precedenza per le espressioni regolari Perl?
risposta
Le espressioni regolari hanno solo due operatori binari, uno dei quali è implicito anziché rappresentato da un simbolo. Le espressioni regolari hanno anche un numero di operatori unari, ma la loro precedenza è discutibile a causa delle restrizioni sui loro operandi. Ciò rende davvero strano parlare di precedenza.
E 'più semplice trasmettere le informazioni che cercate utilizzando le seguenti istruzioni:
- Quantificatori modificare un singolo atomo.
- I modificatori di quantificatori modificano un singolo quantificatore.
- L'alternanza è illimitata tranne per i parenti in cui risiedono.
Le informazioni di cui sopra vengono trasportate in un modo o nell'altro in perlretut.
Detto questo, è possibile creare una tabella di precedenza. Poiché le dichiarazioni di cui sopra trasmettono tutte le informazioni necessarie, è possibile creare da esse la tabella delle precedenze. È il seguente:
- atomi (es
a
,\n
,\^
,.
,^
,\w
,[...]
,\1
,(...)
) - Postfix unario operatori (quantificatori e modificatori quantificatori)
- implicito "seguita da "operatore tra atomi (possibilmente quantificati)
- Alternanza
Corrisponde al grafico nella pagina a cui è stato collegato.
Per divertimento, la seguente sarebbe la BNF:
pattern ::= <alternation>
alternation ::= <sequence> <alternation2>
alternation2 ::= "|" <alternation> | ""
sequence ::= <quantified_atom> <sequence> | ""
quantified_atom ::= <atom> <quantified_atom2>
quantified_atom2 ::= <modified_quantifier> | ""
modified_quantifier ::= <quantifier> <modified_quantifier2>
modified_quantifier2 ::= <quantifier_modifier> | ""
Non avevi bisogno, era già bello :) – Aaron
- 1. Comprendere le espressioni regolari
- 2. Commentando le espressioni regolari
- 3. Quali sono le differenze tra le capacità regex di perl e java?
- 4. Quali sono le regole per l'internamento delle stringhe di cpython?
- 5. Quali sono le regole di ritrasmissione per TCP?
- 6. Chi definisce le espressioni regolari?
- 7. Le ricerche di espressioni regolari sono possibili in Geany?
- 8. espressioni regolari - uguale per tutte le lingue?
- 9. Quali sono le regole per confrontare gli array numpy usando ==?
- 10. quali sono le regole per gli spazi in swift
- 11. Quali sono le regole per gestire i metodi ereditati dall'omonimo?
- 12. Quali funzioni di espressioni regolari sono supportate da Solr edismax?
- 13. Ambito di grep con le espressioni regolari
- 14. Raccontando le eccezioni di espressioni regolari di espressioni in JavaScript
- 15. Scrittura di un parser per le espressioni regolari
- 16. Convenzione di denominazione per le espressioni regolari Python?
- 17. In che modo JavaScript rileva le espressioni regolari?
- 18. Quali sono le regole di pluralizzazione Mongoose (Nodejs)?
- 19. Doppia interpolazione delle espressioni regolari in Perl
- 20. Un parser per le espressioni regolari in PHP?
- 21. Analisi dei casi peggiori per le espressioni regolari
- 22. Prestazioni di espressioni regolari: Boost vs. Perl
- 23. Le espressioni regolari: estrarre tutte le parole di citazioni
- 24. partita date utilizzando le espressioni regolari pitone
- 25. Come utilizzare le espressioni regolari in Jinja2?
- 26. Quali sono le tecniche per aggirare le regole di sicurezza del download del file IE?
- 27. Quali sono le regole dell'aritmetica modulare in C?
- 28. Quali sono le regole sull'accesso simultaneo a un database persistente
- 29. Tutte le espressioni regolari si fermano?
- 30. I dialetti delle espressioni regolari non sono regolari?
perlre contiene una sezione * Versione 8 espressioni regolari * che fornisce una descrizione verbale del modello regex meccanismi corrispondenti. – laune
@laune, ho appena sfogliato _Version 8 Regular Expressions_. Ma non riesco a trovare nulla che sia rilevante per la precedenza. Potrebbe per favore indicare come è rilevante la precedenza? –
Penso che questo testo chiarisca il problema, ma potresti dover leggere (un po ') tra le righe. - In ogni caso, non c'è mai stato un dubbio sulla precedenza di parentesi, quantificatori, giustapposizione e alternative all'interno di uno qualsiasi dei sistemi regex di utilità (primi) * nix, awk, Perl4, Perl5, Java, XML Schema e molti altri. - Cosa ti disturba?? – laune