Как сопоставить с не-Ascii символом, используя Regex в C #? - PullRequest
0 голосов
/ 31 января 2019

Как сопоставить 4 символа, затем прыгнуть на один символ (что мне неизвестно, поэтому, что бы это ни было, например, какой-нибудь другой китайский или особый характер), после того, как 4 символа снова прыгнут на один символ (что мне неизвестно,например, некоторые другие китайские символы или символы специальных символов) 4 и т. д.,

Моя строка проверки : 1234 4567 7891 0934 это 16-значный символ, каждый из 4 символов разделен пробелом.

Основная строка : "ИМЯ УЧЕТНОГО ЗАПИСИ СЧЕТА ДАТА ОПЛАТЫ ДАТА 1234 4567 7891 0934 Джейн Доу 01/01/2009 02/26/09 КРЕДИТНЫЙ ЛИМИТ КРЕДИТ ДОСТУПЕН НОВЫЙ БАЛАНС МИНИМАЛЬНАЯ ПЛАТЕЖНАЯ ЗАПИСЬ."

над текстом (основная строка) взят из документа PDF.который был извлечен OCR Engine.так как основная строка содержит мою контрольную строку, но она отделена каким-то неизвестным символом вместо пробела.Я попытался заменить # на пробел в непосредственном окне Visual studio.но это пространство промежуточной строки проверки главной строки не было заменено.таким образом, я мог бы сказать, что это не-Ascii символ, но кажется пробелом.

Я мог бы избавиться от этой проблемы с помощью кода ниже:

 string asAscii = Encoding.ASCII.GetString(
            Encoding.Convert(
                Encoding.UTF8,
                Encoding.GetEncoding(
                    Encoding.ASCII.EncodingName,
                    new EncoderReplacementFallback(string.Empty),
                    new DecoderExceptionFallback()
                    ),
                Encoding.UTF8.GetBytes(inputString)
            )
        );

но,Я хотел бы знать решение Regex.Несмотря на то, что произошел не-ascii-символ, он должен совпадать с регулярным выражением, чтобы проверить, существует или нет.

1 Ответ

0 голосов
/ 31 января 2019

Если вы не уверены, является ли символ между этими 4 цифрами пробелом или нет, вы можете использовать символ ., который соответствует любому символу, и использовать это регулярное выражение для сопоставления этой группе из 4 цифр, разделенных, казалось бы, неизвестнымсимвол.

\d{4}.\d{4}.\d{4}.\d{4}

Если вы хотите получить доступ к этой группе из 4 цифр, вы можете поместить их в группу и получить к ним доступ, используя все четыре шаблона группировки из этого регулярного выражения,

(\d{4}).(\d{4}).(\d{4}).(\d{4})

Проверьте это демо

Дайте мне знать, если какой-либо из ваших запросов остается нерешенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...