正则表达式匹配问题 - HarmonyOS 鸿蒙Next
正则表达式匹配问题 - HarmonyOS 鸿蒙Next
const regex = /(?<!@(?:[@@]))([@@]([\w一-龥]+))\b(?!\\.\\w{2})\b/g;
let input = '@潇洋老师 222222 @买课4 3333333333333[大哭][害羞][大哭][大笑][微笑][鄙视][鄙视][鄙视][大笑][大笑][大笑][大笑][大笑]www.baidu.com https';
let match = regex.exec(input);
这个match匹配的结果为什么是:@潇,@买课4。而不是@潇洋老师,@买课4。有没有大佬知道下,要是正则匹配@用户名
更多关于正则表达式匹配问题 - HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
安卓上也是用这个正则来匹配用户名吗
更多关于正则表达式匹配问题 - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
内容如下:
或者你提供下筛选用户名的规则,看看能不能重新写个正则解决呢,
在HarmonyOS鸿蒙Next中,正则表达式匹配可以通过使用@ohos.util
模块中的Regex
类来实现。Regex
类提供了正则表达式的编译和匹配功能。你可以使用Regex
类的test
方法来检查字符串是否匹配给定的正则表达式,或者使用exec
方法来获取匹配的结果。
例如,以下代码展示了如何使用Regex
类进行正则表达式匹配:
import util from '@ohos.util';
// 定义正则表达式
const regex = new util.Regex('^[a-zA-Z]+$');
// 测试字符串是否匹配正则表达式
const testString = 'HelloWorld';
const isMatch = regex.test(testString);
console.log(\`字符串 "\${testString}" 是否匹配正则表达式: \${isMatch}\`);
// 获取匹配结果
const execResult = regex.exec(testString);
if (execResult) {
console.log(\`匹配结果: \${execResult[0]}\`);
}
在这个例子中,正则表达式^[a-zA-Z]+$
用于匹配仅包含字母的字符串。test
方法返回一个布尔值,表示字符串是否匹配正则表达式。exec
方法返回一个数组,包含匹配的结果。
需要注意的是,HarmonyOS鸿蒙Next中的正则表达式语法遵循ECMAScript标准,因此你可以使用常见的正则表达式语法和特性。