我只是有一个问题,要创建一个匹配此字符串组合的函数。 第一部分包含I,II,III或IV。然后用/字符分隔。然后是A,B,C或D.
所以它想要III / A,IV / B,I / D.
任何想法如何解决这个问题?
答案 0 :(得分:3)
这实际上是一个很好的教学机会。
首先,您需要^
和$
anchors以确保整个字符串与正则表达式匹配。
/^(regex)$/
现在,要匹配I
到III
,您可以使用{m,n}
quantifier:
/^I{1,3}$/
IV
虽然不同。您需要允许两个alternative matches。但是为了确保交替仅包含文本而不包含锚点,您需要将其括在non-capturing group中:
/^I(?:I{0,2}|V)$/
其余的很简单。 \/
与斜杠匹配,由于下面的四个备选项都只是一个字符长度,因此您不需要使用替换,但可以使用character class:
/^I(?:I{0,2}|V)\/[ABCD]$/
答案 1 :(得分:2)
您可以使用
.match("(I|II|III|IV)/[ABCD]")
答案 2 :(得分:1)
/(I|II|III|IV)(\/)([A-D])/g
第一捕获组(I | II | III | IV) 第一选择:我 我匹配字面上的字符(区分大小写) 第二种选择:II II字面匹配字符II(区分大小写) 第三种选择:III III字面匹配字符III(区分大小写) 第四种选择:IV IV字面匹配字符IV(区分大小写)
第二捕获组(/) /匹配字符/字面
第三捕获组([A-D]) [A-D]匹配下面列表中的单个字符 A-D A和D之间范围内的单个字符(区分大小写) g修饰符:全局。所有比赛(首场比赛不返回)