如何在Objective-C中编写正则表达式

5

我一直对正则表达式的格式和使用方法感到困惑,不知道怎样根据自己的需求编写正则表达式。通常情况下,我只是复制一些常见的正则表达式格式并粘贴到我的项目中,但显然我们无法根据自己的需求找到每一种正则表达式格式。因此,我希望学习有关正则表达式的知识。

我只能通过反复运行代码后进行猜测来编写正则表达式,但我对它还是了解不多。

NSString *regexNumber = @"[123456789][0-9]{0}([0-9]{1})?";

这是一个比较年龄的问题,根据这个年龄应该从1-9开始,最少1位数字,最多2位数字,且只能是数字。
现在我想为姓名 -(例如 - vakul、Vakul、vakul saini、Vakul Saini、vakul Saini、Vakul saini等)、电子邮件电话号码仅字符串生日网址制作正则表达式。但我不想复制粘贴,我想学习它们的工作原理并制作自己的正则表达式。

6
http://www.regular-expressions.info/ - Daniel Hilgarth
2个回答

7

正则表达式是由字母数字字符和特殊字符(称为元字符)组成的文本模式。

元字符包括:

\ | ( ) [ { ^ $ * + ? . < >

. ---- 它是一个特殊的元字符,可以匹配任何字符。

* ---- * 字符匹配零个或多个连续出现的字符。

+ ---- + 字符类似于 *,但它匹配一个或多个。

? ---- 零个或一个字符实例

{m,n} ---- 表示匹配 m 到 n 个字符。例如 {1,5} 匹配 1 到 5 个字符

^ ---- 它将匹配以其后面的单词开头的任何行

$ ---- 它将匹配以其后面的单词结尾的任何行

<> ---- 匹配两者之间的单词。例如返回包含 abc 的所有单词

您可以通过使用开头和结束括号字符来形成组或子表达式: () ( 开始子表达式,) 结束它

| --- 或者参数

[ and ] --- 字符序列。放在序列括号内的任何字符都被视为字面字符,甚至是元字符。唯一的特殊字符是 -,表示字符范围,和 ^,用于否定一个序列。例如 [a-z]

这是正则表达式所需的最基本知识,几乎所有语言都相同。

要了解更多详细信息,请参阅此链接.


iOS正在使用修改版的ICU 4.2.1库。API文档位于http://icu-project.org/apiref/icu4c/index.html。 - ZhangChn
我已经提到了“这是正则表达式所需的最基本知识,几乎所有语言都是相同的。”而且它们在iOS上也可以使用,几乎所有语言都可以。 - DivineDesert
乐意帮助 :) 如果有帮到你的话,可以接受它。 - DivineDesert

0

你应该使用Regexkit Framework,我发现它是iOS中正则表达式的最佳解决方案。


谢谢@iYaniv - 它会教我如何制作正则表达式吗?我不想复制别人的正则表达式,因为没有人能给我我需要的每个正则表达式格式。所以我想学习制作自己的... - TheTiger
前往http://www.regular-expressions.info。 - Janub
1
@Daniel Hilgarth已经在这个问题的第一个评论中提供了那个链接... 这是一个很好的学习链接。 - TheTiger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接