如何创建正则表达式javascript函数来匹配字符串的特定组合?
我只是有一个问题,创建一个函数来匹配这个字符串组合。 第一部分包含I、II、III或IV,然后用/字符分隔。然后是A、B、C或D 所以它像III/A,IV/B,I/D 你知道怎么解决这个问题吗?你可以用如何创建正则表达式javascript函数来匹配字符串的特定组合?,javascript,regex,Javascript,Regex,我只是有一个问题,创建一个函数来匹配这个字符串组合。 第一部分包含I、II、III或IV,然后用/字符分隔。然后是A、B、C或D 所以它像III/A,IV/B,I/D 你知道怎么解决这个问题吗?你可以用 .match("(I|II|III|IV)/[ABCD]") 你可以用 .match("(I|II|III|IV)/[ABCD]") 这实际上是一个很好的教学机会 首先,需要^和$确保整个字符串与正则表达式匹配 /^(regex)$/ 现在,要通过III匹配I,可以使用{m,n}: IV则
.match("(I|II|III|IV)/[ABCD]")
你可以用
.match("(I|II|III|IV)/[ABCD]")
这实际上是一个很好的教学机会 首先,需要
^
和$
确保整个字符串与正则表达式匹配
/^(regex)$/
现在,要通过III
匹配I
,可以使用{m,n}
:
IV
则不同。你需要允许两个。但为了确保替换仅包括文本而不包括锚定,您需要将其包含在一个:
剩下的就直截了当了\/
匹配一个斜杠,由于接下来的四个备选字符的长度都是一个字符,因此不需要使用备选字符,但可以使用:
这实际上是一个很好的教学机会 首先,需要
^
和$
确保整个字符串与正则表达式匹配
/^(regex)$/
现在,要通过III
匹配I
,可以使用{m,n}
:
IV
则不同。你需要允许两个。但为了确保替换仅包括文本而不包括锚定,您需要将其包含在一个:
剩下的就直截了当了\/
匹配一个斜杠,由于接下来的四个备选字符的长度都是一个字符,因此不需要使用备选字符,但可以使用:
这里是
^(?:II?I?| IV)\/[ABCD]$
这里是^(?:II?I?| IV)\/[ABCD]$
请注意,最好写:^I(?:I{1,2}V)\/[ABCD]$
或^I(?:II?| V)\/[ABCD]$
,因为如果字符串以IV
开头,第一次替换不会成功<代码>^I(?:V | I{0,2})\/[ABCD]$也是可能的,但不会将最可能的替代方案放在首位。@Casimirithipolyte:好主意。很高兴看到一个人能在这样一个(乍一看)琐碎的问题上投入多少心思。简单的案例是最好的,在更长的模式中,我可能会错过这一点。请注意,最好写:^I(?:I{1,2}V)\/[bacd]$
或^I(?:II?;V)\/[bacd]$
因为如果字符串以IV
开头,则第一次替换不会成功<代码>^I(?:V | I{0,2})\/[ABCD]$也是可能的,但不会将最可能的替代方案放在首位。@Casimirithipolyte:好主意。很高兴看到一个人能在这样一个(乍一看)琐碎的问题上投入多少心思。简单的案例是最好的,在更长期的模式中,我可能会错过这一点。
/^I(?:I{0,2}|V)\/[ABCD]$/
/(I|II|III|IV)(\/)([A-D])/g