Регулярное выражение - удаление строки (на английском языке) и присоединение ее к концу верхней строки (на корейском языке) - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть этот текст, как показано ниже:

아니다
bukan

싫다
tidak suka

훌륭하다
bagus

И я пытаюсь удалить английскую строку (английские алфавиты) и прикрепить ее к концу верхней строки (корейские алфавиты) следующим образом:

아니다bukan

싫다tidak suka

훌륭하다bagus

Теперь, наконец, найдите почти близкое регулярное выражение, которое выглядит так:

[가-힣]\R

Однако, текстовый файл выглядит так:

아니bukan

싫tidak suka

훌륭하bagus

Проблема также в удалении одного слова из корейского.

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

C ++ std::regex не поддерживает классы свойств Unicode, такие как \p{Hangul}, но вы можете использовать эквивалентный класс символов [\u1100-\u11FF\u302E\u302F\u3131-\u318E\u3200-\u321E\u3260-\u327E\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC], см. эту ссылку .

Кроме того, \R также не поддерживается. Возможно, вы просто используете \r?\n для соответствия с окончаниями строк в стиле Windows / Linux или (?:\r\n?|\n) для поддержки окончаний строк в MacOS.

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

Итак, вы можете использовать

([\u1100-\u11FF\u302E\u302F\u3131-\u318E\u3200-\u321E\u3260-\u327E\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC])(?:\r\n?|\n)

Заменить на $1, чтобы вернуть корейский символ в полученную строку.

См. Демонстрационную версию regex онлайн .

0 голосов
/ 08 ноября 2018

Регулярное выражение для набора всех корейских символов в юникоде:

\p{Hangul}

Здесь больше информации: https://www.regular -expressions.info / unicode.html

Может быть, вам также нужен знак + после группы символов?

Используйте регулярное выражение [\ p {Hangul}] + \ R вместо того, что вы используете сейчас.

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