我编程的语言是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。我真的被卡住了。
答案 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