Regex с китайским и английским Unicode - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь обнаружить хэштеги с некоторыми китайскими иероглифами в содержимом, указанном ниже:

#xyz Wo hat man die beste Aussicht auf die F1 Rennbahn? Kai Ebel hat 
einen Tipp für euch ! #visitsingaporeFür den Überblick: #ViewFromTheTop
Einer der besten Orte in Singapur , um das Nachtrennen von oben zu sehen
, ist für mich CE LA VI auf dem Marina Bay Sands. #wea周有七天 Die #kkk.
Panorma Sicht auf die Stadt und auf die Rennbahn sind spektakulär !
#visitsingapore https://s.l/JA5DAF #abc #周有七天 #a七

Регулярное выражение, которое я пробовал:

#[\u4E00-\u9FCC]+|#(\w)

, но не может обнаружитьполный хэштег как #wea周有七天 Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Если вам нужно сопоставить все хэштеги, содержащие смешанный китайский (в диапазоне [\u4E00-\u9FCC] и некитайские символы, вы можете использовать

#[^\s]*[\u4E00-\u9FCC]+[^\s]*

Объяснение: сопоставить 0 или более непробельных символов и хотя бы один символв диапазоне [\u4E00-\u9FCC].

txt = "#xyz Wo hat man die beste Aussicht auf die F1 Rennbahn? Kai Ebel hat einen Tipp für euch ! #visitsingaporeFür den Überblick: #ViewFromTheTop Einer der besten Orte in Singapur , um das Nachtrennen von oben zu sehen, ist für mich CE LA VI auf dem Marina Bay Sands. #wea周有七天 Die #kkk. Panorma Sicht auf die Stadt und auf die Rennbahn sind spektakulär ! #visitsingapore https://s.l/JA5DAF #abc #周有七天 #a七";

console.log(txt.match(/#[^\s]*[\u4E00-\u9FCC]+[^\s]*/gu));
0 голосов
/ 14 декабря 2018

Что-то вроде следующего?

var string = '#xyz Wo hat man die beste Aussicht auf die F1 Rennbahn? Kai Ebel hat einen Tipp für euch ! #visitsingaporeFür den Überblick: #ViewFromTheTopEiner der besten Orte in Singapur , um das Nachtrennen von oben zu sehen, ist für mich CE LA VI auf dem Marina Bay Sands. Die #kkk. Panorma Sicht auf die Stadt und auf die Rennbahn sind spektakulär ! #visitsingapore https://s.l/JA5DAF #abc #周有七天 #a七 #wea周有七天';

const REGEX = /(#[\u4E00-\u9FCC]+|#(\w)\p{Script=Hani}.+|#(\w)+)/gu;
console.log(string.match(REGEX));

Чтобы соответствовать китайскому языку, вы просто делаете это:

const REGEX = /(\p{Script=Hani})+/gu;
console.log('你好'.match(REGEX));

Хитрость заключается в том, чтобы использовать \ p и использовать правильное имя сценария, Хани означает сценарий Хань (китайский).Полный список скриптов здесь: http://unicode.org/Public/UNIDATA/PropertyValueAliases.txt

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