正则表达式中的可选项
optionals in a look around regular expressions
我正在尝试找出如何使用正则表达式将选项值放入环视中。
这些值应该匹配
3
1000
15-20
2048-4096/100
这个值应该不
3/4
我想在正则表达式中说“只有在 / 除号前有破折号 4 位数字和冒号时才匹配
例如:
-9999
在 /
除号之前应该匹配
9999/
不应该匹配,因为没有 -
-/
不应该匹配,因为没有数字
^[^0][0-9]*(-|:)?([0-9]*)?(?<=[0-9])(\/)?([0-9]*)$
我环顾四周只是为了寻找前面的数字,但如果我在其中输入 ?
或 *
,它就不再有效了。感谢您的帮助!!!
^\d+(?:[-:](?:\d{4}\/\d+|\d+))?$
如果我理解正确,
- \d+ 以某个数字开头
- (?: ...)?后跟以破折号或冒号开头的可选模式
- \d{4}/\d+ 可选组中的数字可以是带斜杠的4位数字和另一个数字
- \d+ 或者可选组可以是任何数字,如果它不以斜杠开头。
我正在尝试找出如何使用正则表达式将选项值放入环视中。
这些值应该匹配
3
1000
15-20
2048-4096/100
这个值应该不
3/4
我想在正则表达式中说“只有在 / 除号前有破折号 4 位数字和冒号时才匹配
例如:
-9999
在/
除号之前应该匹配9999/
不应该匹配,因为没有 --/
不应该匹配,因为没有数字^[^0][0-9]*(-|:)?([0-9]*)?(?<=[0-9])(\/)?([0-9]*)$
我环顾四周只是为了寻找前面的数字,但如果我在其中输入 ?
或 *
,它就不再有效了。感谢您的帮助!!!
^\d+(?:[-:](?:\d{4}\/\d+|\d+))?$
如果我理解正确,
- \d+ 以某个数字开头
- (?: ...)?后跟以破折号或冒号开头的可选模式
- \d{4}/\d+ 可选组中的数字可以是带斜杠的4位数字和另一个数字
- \d+ 或者可选组可以是任何数字,如果它不以斜杠开头。