我正在尝试检测以下内容中带有一些汉字的主题标签:
#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周有七天
这样的完整主题标签?
答案 0 :(得分:5)
类似于以下内容吗?
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并使用正确的脚本名称,Hani代表Han脚本(中文)。脚本的完整列表在这里:http://unicode.org/Public/UNIDATA/PropertyValueAliases.txt
答案 1 :(得分:0)
如果您需要匹配所有包含混合中文(在[\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));