如何检查我的字符串是不是与正则表达式匹配 - Swift 3 [重复]

Posted

技术标签:

【中文标题】如何检查我的字符串是不是与正则表达式匹配 - Swift 3 [重复]【英文标题】:How to check if my string matches with regex - Swift 3 [duplicate]如何检查我的字符串是否与正则表达式匹配 - Swift 3 [重复] 【发布时间】:2017-08-01 19:27:17 【问题描述】:

我到处搜索,但它不符合我的要求。 如何检查字符串是否与正则表达式匹配? 我不想知道我的字符串是否包含字符或者它们是什么,但是我想做一个返回 true 或 false 的函数这个字符串是否" abcdefgh" 与 "[a-z]" 匹配。

我可以在 php、JS 中做到这一点,但显然在 Swift 中所有人都只想知道哪些字符匹配。 ^^

问候,

【问题讨论】:

print("abcdefgh".range(of: "[a-z]", options: .regularExpression) != nil) print("abcdef2gh".range(of: "[a-z]", options: .regularExpression) != nil) 返回 true,尽管它不应该 为什么不应该?该字符串中有一个小写的 ASCII 字符。这是一个部分匹配。你需要一个完整的字符串匹配吗?那么你如何在 PHP 和 JS 中做到这一点呢? :) PHP 和 JS 都没有完整的字符串正则表达式匹配方法。顺便说一句,斯威夫特有一个。 还有这个? ^^console.log(/^([a-z]*)$/.test('abcdefgh')) // true | console.log(/^([a-z]*)$/.test('abcd2efgh')) // false。测试自己。这就是我想在 Swift 中做的事情。你好吗 ? [[来源:***.com/questions/6603015/…]] 您正在使用锚点和量词。将它们与我的解决方案一起使用,您将获得相同的行为。 print("abcdefgh".range(of: "^[a-z]*$", options: .regularExpression) != nil)RegExp#test 只搜索部分匹配,正是 ^$ 使 JS 正则表达式引擎确保完整的字符串匹配。无论如何,你的问题是一个骗局。 【参考方案1】:

你不应该茫然地将想法从一种语言导入另一种语言:

let regex = try! NSRegularExpression(pattern: "[a-z]", options: [])
let str = "abcdefgh"

let isMatch = regex.firstMatch(in: "abcdefgh", options: [], range: NSMakeRange(0, str.utf16.count)) != nil

【讨论】:

以上是关于如何检查我的字符串是不是与正则表达式匹配 - Swift 3 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是与 Thymeleaf 中的正则表达式匹配?

Python:检查列表中至少一个正则表达式是不是与字符串匹配的优雅方法

如何检查字符串是不是匹配数组中的正则表达式之一?

检查是不是存在与正则表达式匹配的数组键

检查列表是不是有一个或多个与正则表达式匹配的字符串

检查行是不是匹配正则表达式