我正在编程的语言是Objective C,尽管这可能对解决此问题没有任何影响。正则表达式分组
给定0至3次出现的6, 7, 9, 11 and 13
及其修饰符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。我很困难。
是啊,我想一个解决方案就像那样。唯一的问题是匹配。例如,对于#139,它创建了4个组:#13,13,9和9。我如何区分我想要的群体和我不想要的群体? – 02fentym
我更新了我的答案。请注意,我删除了最后一个“?”因为它也寻找零长度匹配,这意味着总是创建一个额外的组,即使没有匹配你的正则表达式 – IMAMBAKS
嗯......它仍然#13,9#11等失败。 :https://regex101.com/r/nJ1dP6/1 – 02fentym