正则表达式分组

时间:2015-06-21 05:49:14

标签: objective-c regex

我编程的语言是Objective C,尽管这可能与解决这个问题无关。

如果6, 7, 9, 11 and 13出现0到3次及其修饰符b#,您将如何编写正则表达式以便检索每个值的分组?正则表达式甚至是最好的解决方案吗?以下是一些需要匹配的字符串示例:

Example 1: 7#9  //The groupings should be 7 #9

Example 2: 7b9#13 //The groupings should be 7 b9 #13

Example 3: b6 //The grouping should be b6

Example 4: 7#1311 //The groupings should be 7 #13 11

Example 5: 7911 //The groupings should be 7 9 11

为了匹配像#13这样的一个数字,我尝试了以下内容:

([#b]?13|11|9|7|6)?

匹配#13,但不匹配#11。我真的被卡住了。

2 个答案:

答案 0 :(得分:0)

你错了括号。 答案应为:

  

[#B]?(13 | 11 | 9 | 7 | 6)

在哪里查找每个数字与可能的#b

的组合

而不是

  

([#B] 13 |?11 | 9 | 7 | 6)?

只查找#13或11或9等的组合

答案 1 :(得分:0)

主要问题是[#| b]集未单独应用于13,11,9,7和6。此外,我复制它来处理多个分组。这是修复:

b9#1113

对于字符串id,它现在分组如下:

第1组:b9
第2组:#11
第3组:13