Soy un fanático de las expresiones regulares. Mientras escribía una expresión regular para buscar versículos sin puntuación final:
[^\\][^\p{P}\d]\r\n\\v
o
[^\\l][^\p{P}\d]\r\n\\v \d+ \p{Lu}
, me di cuenta de que la variante de C# de RegEx en RegexPal (y en el filtrado/proceso de FLEx) admite categorías de caracteres Unicode abreviadas (no extensas).
Algunas de las más útiles son:
-
\p{L} Letra (casi cualquier ortografía)
-
\p{Lu} Letra mayúscula
-
\p{Ll} Letra minúscula
-
\p{P} Puntuación
-
\p{M} Cualquier diacrítico
Si la P después de la barra es mayúscula, significa NO esa clase de caracteres.
La lista completa:
-
\p{L}: cualquier tipo de letra de cualquier idioma.
-
\p{Ll}: una letra minúscula que tiene una variante mayúscula.
-
\p{Lu}: una letra mayúscula que tiene una variante minúscula.
-
\p{Lt}: una letra que aparece al inicio de una palabra cuando solo la primera letra de la palabra está en mayúscula.
-
\p{L&}: una letra que existe en variantes minúscula y mayúscula (combinación de Ll, Lu y Lt).
-
\p{Lm}: un carácter especial que se usa como una letra.
-
\p{Lo}: una letra o ideograma que no tiene variantes minúscula y mayúscula.
-
\p{M}: un carácter destinado a combinarse con otro carácter (p. ej., acentos, diéresis, recuadros envolventes, etc.).
-
\p{Mn}: un carácter destinado a combinarse con otro carácter sin ocupar espacio adicional (p. ej., acentos, diéresis, etc.).
-
\p{Mc}: un carácter destinado a combinarse con otro carácter que ocupa espacio adicional (signos vocálicos en muchos idiomas orientales).
-
\p{Me}: un carácter que envuelve al carácter con el que se combina (círculo, cuadrado, tecla, etc.).
-
\p{Z}: cualquier tipo de espacio en blanco o separador invisible.
-
\p{Zs}: un carácter de espacio en blanco que es invisible, pero ocupa espacio.
-
\p{Zl}: carácter separador de línea U+2028.
-
\p{Zp}: carácter separador de párrafo U+2029.
-
\p{S}: símbolos matemáticos, signos de moneda, dingbats, caracteres de dibujo de cuadros, etc.
-
\p{Sm}: cualquier símbolo matemático.
-
\p{Sc}: cualquier signo de moneda.
-
\p{Sk}: un carácter de combinación (marca) como un carácter completo por sí mismo.
-
\p{So}: varios símbolos que no son símbolos matemáticos, signos de moneda o caracteres de combinación.
-
\p{N}: cualquier tipo de carácter numérico en cualquier escritura.
-
\p{Nd}: un dígito del cero al nueve en cualquier escritura, excepto las escrituras ideográficas.
-
\p{Nl}: un número que parece una letra, como un numeral romano.
-
\p{No}: un dígito en superíndice o subíndice, o un número que no es un dígito del 0 al 9 (excluyendo números de escrituras ideográficas).
-
\p{P}: cualquier tipo de carácter de puntuación.
-
\p{Pd}: cualquier tipo de guion o raya.
-
\p{Ps}: cualquier tipo de corchete de apertura.
-
\p{Pe}: cualquier tipo de corchete de cierre.
-
\p{Pi}: cualquier tipo de comilla de apertura.
-
\p{Pf}: cualquier tipo de comilla de cierre.
-
\p{Pc}: un carácter de puntuación, como un guion bajo, que conecta palabras.
-
\p{Po}: cualquier tipo de carácter de puntuación que no es un guion, corchete, comilla o conector.
-
\p{C}: caracteres de control invisibles y puntos de código no utilizados.
-
\p{Cc}: un carácter de control ASCII o Latin-1: 0x00–0x1F y 0x7F–0x9F.
-
\p{Cf}: indicador de formato invisible.
-
\p{Co}: cualquier punto de código reservado para uso privado.
-
\p{Cs}: la mitad de un par de sustitutos en la codificación UTF-16.
-
\p{Cn}: cualquier punto de código al que no se le ha asignado ningún carácter.
Documentación completa:
https://www.regular-expressions.info/unicode.html#category
I’m a Regular Expressions nerd. While I was writing a regex to look for verses with no ending punctuation:
[^\\][^\p{P}\d]\r\n\\v
or
[^\\l][^\p{P}\d]\r\n\\v \d+ \p{Lu}
, I realized that the C# flavor of RegEx in RegexPal (and FLEx filtering/Process) supports shorthand (not longhand) Unicode character categories.
Some of the most useful are:
-
\p{L} Letter (nearly any orthography)
-
\p{Lu} Uppercase letter
-
\p{Ll} Lowercase letter
-
\p{P} Punctuation
-
\p{M} Any diacritic
If the P after the slash is capital, it means NOT that character class.
The whole list:
-
\p{L}: any kind of letter from any language.
-
\p{Ll}: a lowercase letter that has an uppercase variant.
-
\p{Lu}: an uppercase letter that has a lowercase variant.
-
\p{Lt}: a letter that appears at the start of a word when only the first letter of the word is capitalized.
-
\p{L&}: a letter that exists in lowercase and uppercase variants (combination of Ll, Lu and Lt).
-
\p{Lm}: a special character that is used like a letter.
-
\p{Lo}: a letter or ideograph that does not have lowercase and uppercase variants.
-
\p{M}: a character intended to be combined with another character (e.g. accents, umlauts, enclosing boxes, etc.).
-
\p{Mn}: a character intended to be combined with another character without taking up extra space (e.g. accents, umlauts, etc.).
-
\p{Mc}: a character intended to be combined with another character that takes up extra space (vowel signs in many Eastern languages).
-
\p{Me}: a character that encloses the character it is combined with (circle, square, keycap, etc.).
-
\p{Z}: any kind of whitespace or invisible separator.
-
\p{Zs}: a whitespace character that is invisible, but does take up space.
-
\p{Zl}: line separator character U+2028.
-
\p{Zp}: paragraph separator character U+2029.
-
\p{S}: math symbols, currency signs, dingbats, box-drawing characters, etc.
-
\p{Sm}: any mathematical symbol.
-
\p{Sc}: any currency sign.
-
\p{Sk}: a combining character (mark) as a full character on its own.
-
\p{So}: various symbols that are not math symbols, currency signs, or combining characters.
-
\p{N}: any kind of numeric character in any script.
-
\p{Nd}: a digit zero through nine in any script except ideographic scripts.
-
\p{Nl}: a number that looks like a letter, such as a Roman numeral.
-
\p{No}: a superscript or subscript digit, or a number that is not a digit 0–9 (excluding numbers from ideographic scripts).
-
\p{P}: any kind of punctuation character.
-
\p{Pd}: any kind of hyphen or dash.
-
\p{Ps}: any kind of opening bracket.
-
\p{Pe}: any kind of closing bracket.
-
\p{Pi}: any kind of opening quote.
-
\p{Pf}: any kind of closing quote.
-
\p{Pc}: a punctuation character such as an underscore that connects words.
-
\p{Po}: any kind of punctuation character that is not a dash, bracket, quote or connector.
-
\p{C}: invisible control characters and unused code points.
-
\p{Cc}: an ASCII or Latin-1 control character: 0x00–0x1F and 0x7F–0x9F.
-
\p{Cf}: invisible formatting indicator.
-
\p{Co}: any code point reserved for private use.
-
\p{Cs}: one half of a surrogate pair in UTF-16 encoding.
-
\p{Cn}: any code point to which no character has been assigned.
Full Documentation:
https://www.regular-expressions.info/unicode.html#category
Traducción automática desde English