我需要一直将1/1匹配到4/48。 1 / 1,1 / 2,1 / 3一直到1 / 48,2 / 1至2/48 .... 3/1至3/48和4/1至4/48 ....但是使用正则表达式比较麻烦,因为它的末尾一定不能包含逗号,并且不能重复任何已输入的内容。
^([1-4]\/([1-9]|[1-4][0-8]|[1-3][0-9]))[?\,]+$
答案 0 :(得分:1)
要匹配从1
到48
的数字
1
到9
:[1-9]
10
至39
:[1-3][0-9]
40
至48
:4[0-8]
给出
[1-9]|[1-3][0-9]|4[0-8]
根据评论更新以下正则表达式
^(?:(?:^|,)[1-4]\/(?:[1-9]|[1-3][0-9]|4[0-8])(?=,|$))+$
关于非捕获组和前瞻。
(?:
.. )
与组(
.. )
相同,只是不能反向引用,因此可以最好避免增加反向引用的数量。(?:,)
之后,输入光标将在,
之后,而在匹配(?=,)
之后,即确保在输入光标位置匹配以下内容,光标位置仍将在,
之前。