Я — фанат регулярных выражений. Пока я писал регулярное выражение для поиска стихов без завершающей пунктуации:
[^\\][^\p{P}\d]\r\n\\v
или
[^\\l][^\p{P}\d]\r\n\\v \d+ \p{Lu}
, я понял, что вариант RegEx на C# в RegexPal (и в фильтрации/обработке FLEx) поддерживает сокращённые (а не полные) категории символов Unicode.
Некоторые из самых полезных:
\p{L} Буква (почти любой орфографический вариант)
\p{Lu} Заглавная буква
\p{Ll} Строчная буква
\p{P} Пунктуация
\p{M} Любой диакритический знак
Если P после косой черты записано заглавной буквой, это означает НЕ этот класс символов.
\P{L} Любой символ, не являющийся буквой
Полный список:
\p{L}: любой вид буквы из любого языка.
\p{Ll}: строчная буква, у которой есть заглавный вариант.
\p{Lu}: заглавная буква, у которой есть строчный вариант.
\p{Lt}: буква, которая появляется в начале слова, когда заглавной является только первая буква слова.
\p{L&}: буква, существующая в строчном и заглавном вариантах (комбинация Ll, Lu и Lt).
\p{Lm}: специальный символ, используемый как буква.
\p{Lo}: буква или иероглиф, у которого нет строчных и заглавных вариантов.
\p{M}: символ, предназначенный для соединения с другим символом (например, акценты, умлауты, обрамляющие рамки и т. д.).
\p{Mn}: символ, предназначенный для соединения с другим символом без занятия дополнительного места (например, акценты, умлауты и т. д.).
\p{Mc}: символ, предназначенный для соединения с другим символом и занимающий дополнительное место (знаки гласных во многих восточных языках).
\p{Me}: символ, обрамляющий символ, с которым он соединяется (круг, квадрат, клавиша и т. д.).
\p{Z}: любой вид пробела или невидимого разделителя.
\p{Zs}: невидимый символ пробела, но занимающий место.
\p{Zl}: символ разделения строк U+2028.
\p{Zp}: символ разделения абзацев U+2029.
\p{S}: математические символы, знаки валют, декоративные элементы, символы для рисования рамок и т. д.
\p{Sm}: любой математический символ.
\p{Sc}: любой знак валюты.
\p{Sk}: соединительный символ (знак) как самостоятельный полный символ.
\p{So}: различные символы, не являющиеся математическими символами, знаками валют или соединительными символами.
\p{N}: любой вид числового символа в любой письменности.
\p{Nd}: цифра от нуля до девяти в любой письменности, кроме иероглифических.
\p{Nl}: число, похожее на букву, например римская цифра.
\p{No}: верхний или нижний индекс цифры, или число, не являющееся цифрой 0–9 (исключая числа из иероглифических письменностей).
\p{P}: любой вид символа пунктуации.
\p{Pd}: любой вид дефиса или тире.
\p{Ps}: любой вид открывающей скобки.
\p{Pe}: любой вид закрывающей скобки.
\p{Pi}: любой вид открывающей кавычки.
\p{Pf}: любой вид закрывающей кавычки.
\p{Pc}: символ пунктуации, такой как подчёркивание, который соединяет слова.
\p{Po}: любой вид символа пунктуации, не являющегося тире, скобкой, кавычкой или соединителем.
\p{C}: невидимые управляющие символы и неиспользуемые кодовые позиции.
\p{Cc}: управляющий символ ASCII или Latin-1: 0x00–0x1F и 0x7F–0x9F.
\p{Cf}: невидимый индикатор форматирования.
\p{Co}: любая кодовая позиция, зарезервированная для частного использования.
\p{Cs}: одна половина суррогатной пары в кодировке UTF-16.
\p{Cn}: любая кодовая позиция, которой не присвоен символ.
Полная документация:
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
Переведено машиной с языка English Показать оригинал