requisitos - Regex O en el bloc de notas++
upgrade mongodb shell (6)
Me gustaría encontrar todas las siguientes instancias en notepad ++
action421
action732
action983
pero ignora todas las otras combinaciones de actionXXX
.
Estoy buscando una expresión regular similar a la action(421)|(732)|(983)
pero no funciona. ¿Qué regex haría?
¿ Notepad ++ tiene el motor de expresiones regulares un operador OR
?
Notepad ++ no es compatible con el operador de alternancia |
. Puedes probar la opción regexp textfx ctrl + R pero creo que lo mismo es cierto.
Parece que Don Ho agregó el RegEx O | Operador de Notepad ++ Native Find
en el
última versión del Bloc de notas (ver. 6.1.1).
Descargar el Bloc de notas 6.1.1 desde here
Instale el Bloc de notas 6.1.1, luego vaya a Buscar-> Buscar
Encuentra qué: action(421|732|983)
Modo de búsqueda: (*) Regular Expression
Haga clic en el botón Find Next
Puede usar el complemento de ayuda de expresiones regulares para Notepad ++, pero eso es más para el desarrollo de expresiones regulares que reemplazar, pero si solo quiere encontrarlo, creo que este complemento puede ser útil.
Use el PythonScript Notepad ++ para la función de búsqueda de expresiones regulares de Python.
Vea here para funciones
Editor.pysearch(expression, function[, flags[, startLine[, endLine]]])
o
Editor.pymlsearch(expression, function[, flags[, startPosition[, endPosition]]])
Aquí hay un programa simple que utiliza la función de búsqueda de expresiones regulares python editor.pysearch ()
He dejado un montón de código de depuración para que pueda ver lo que está sucediendo durante el curso de la función ejecutada.
# $Revision: 1.3 $
# $Author: dot $
# $Date: 2012/04/19 00:03:26 $
from Npp import *
import re, string
expression = notepad.prompt(
"Enter the RegEx search string then press Enter",
"RegEx and Search" ,
"")
debug = True
#debug = False
if debug:
bufferID = notepad.getCurrentBufferID()
if debug:
# Show console for debugging
console.clear()
console.show()
if expression != None:
expressionSansNl = expression.replace(''/r/n'', '''')
if debug:
console.write( expression + "/n" )
# First we''ll start an undo action, then Ctrl-Z will undo the actions of the whole script
editor.beginUndoAction()
if debug:
console.write( ''editor.pysearch( r"%s" % expressionSansNl, None)/n'' )
editor.pysearch( r"%s" % expressionSansNl, None)
# End the undo action, so Ctrl-Z will undo the above two actions
editor.endUndoAction()
# Debug
if debug:
notepad.activateBufferID(bufferID)
Asigne esta secuencia de comandos al acceso directo de Notepad ++ Ctrl+<ChooseALetter>
y ejecútelo.
Escriba en la action(421|732|983)
búsqueda RegEx action(421|732|983)
Según la documentación de Python here , la |
Operador RegEx es compatible.
No he probado esto, tal vez el parámetro Ninguno en la función pysearch () necesite
para ser una función que seleccionará la cadena resultante. Según docs here ,
la función debe devolver un MatchObject de python. Creo que hay una manera de conseguir el
cadena coincidente del MatchObject y seleccione la siguiente aparición de esa coincidencia
cadena en el objeto editor. Publicaré una nueva revisión de la respuesta una vez que termine la codificación
y probando esto.
su expresión regular parece ser correcta pero intenta usar esto:
action(421|732|983)
Ahora es posible en el Bloc de notas> = 10.1.1. Según Dragos Toader : "La última versión a partir de hoy (Notepad 10.1.1) admite | en RegEx"
== respuesta original debajo ==
No es posible en Notepad ++. Ver esta respuesta
Pero su expresión regular no es correcta. Éste funcionaría: action(421|732|983)
si Notepad ++ admite la |
en regex