`Hello @john` -> true
`Hello @john ` -> false
`Hello @john.` -> false
`Hello @john i` -> false
回答
尝试正则表达式:@\p{L}+(?:$|\n)
\p{L} -> Match matches any kind of letter from any language
$ -> Match End of the string
这个正则表达式 - “@ \ w + $' - 不仅与ASCII字母匹配,因为ICU速记类支持Unicode。此外,它将匹配字符串末尾的“@_____”。更多的,这个正则表达式将打印* true *作为像''@Вася\ n“'这样的字符串。提到后面跟着一个换行符,而不是在字符串的最后。 '@ \ w + $'是**错误的解决方案**。 @Ashraful,修复或删除请。 –
@WiktorStribiżew很好的捕获。 –
顺便说一句,提供链接到PCRE演示并不能证明正则表达式的工作原理,regex101.com不支持ICU正则表达式。 –
如果您想验证用模式的用户提字符串,您在说明显示它是最好写入String
的扩展名。这将验证数据。
尝试:
extension String {
func mention() -> Bool {
let pattern = "@[a-zA-Z]+$"
guard let _ = self.range(of:pattern, options: .regularExpression) else {
return false
}
return true
}
}
测试用例:
let input = ["Hello @john", "Hello @john ", "Hello @john.", "Hello @john i,", "@_____", "@Вася\n"]
for item in input {
if !item.mention() {
print("Failed to get mention at | \(item) |")
}
}
验证:
Failed to get mention at | Hello @john |
Failed to get mention at | Hello @john. |
Failed to get mention at | Hello @john i, |
Failed to get mention at | @_____ |
Failed to get mention at | @Вася
|
- 1. Twitter iOS API是否提供了确定推文是否成功的方法?
- 2. 如何确定VFPOLEDB提供程序是否已安装/注册?
- 3. 在AngularJS中,如何确定属性是否提供给组件?
- 4. C++程序 - 不确定是否我提供了正确的解决方案
- 5. 如何确定是否启用了CONFIG_FANOTIFY_ACCESS_PERMISSIONS?
- 6. 如何确定文件是否是Eclipse中的文本文件
- 7. retainCount是否为我提供了我的NSDate的正确信息?
- 8. 是否在WPF中提供了RecreateDatabaseIfModelChanges?
- 9. 在emguCV中是否提供了cvCreateTrackbar?
- 10. 如何确定我是否安装了本地SQL Server 2008 R2
- 11. iPhone是否提供了一个很好的加密API /服务提供者?
- 12. 是否有一个Python库,它为给定的unicode字符或字符串提供了脚本名称?
- 13. 如何检查函数调用中是否提供了参数?
- 14. 我如何知道Geocoder是否提供了android?
- 15. 如何确定一个字符串是否是ksh的数字
- 16. 确定字符串是否是文本中的专有名词
- 17. 确定文本是否为英文?
- 18. 如何测试一个类是否明确定义了__gt__?
- 19. 是否苹果提供了一个网站,以了解IOS(如Android)
- 20. 确定是否提交TransactionScope
- 21. 确定是否通过批处理文件提供特定驱动器盘符
- 22. 如何检测VideoSink.OnSample()提供的示例是否正确?
- 23. 7-zip如何检查您提供的密码是否正确?
- 24. 如何提供本地化文本?
- 25. 是否提供ActivePerl?
- 26. Alfresco:社区版是否提供了文档库功能
- 27. 我试图确定一个字符串是否是回文
- 28. 在R中是否有一个包提供了-normalized-inverse FFT?
- 29. NUnit是否提供了一个多枚举帮助器?
- 30. 确定可用空间的Python脚本提供了不准确的结果
有什么问题吗?你能详细说明一下吗? –
您可以通过提及请详细说明您的意思 – RiggsFolly