我在powershell 5.1中使用regex。
我需要它来检测数字组,但忽略/后面或前面的组,因此它应该只检测9876。
[regex]::matches('9876 1234/56',‘(?<!/)([0-9]{1,}(?!(/[0-9])))’).value
现在的结果是:
9876
123
6
更多示例:"13 17 10/20"应该只匹配13和17。
尝试使用类似(?!(/([0-9]{1,})))
的东西,但没有帮助。
您可以使用
b(?<!/)[0-9]+b(?!/[0-9])
查看regex演示
或者,如果数字可以粘贴到文本:
(?<![/0-9])[0-9]+(?!/?[0-9])
请参阅此regex演示。
第一种模式基于单词边界b
,确保在预期匹配前后没有字母、数字和_
。第二个只是确保比赛两端没有数字和/
。
详细信息
(?<![/0-9])
-一个负查找,确保当前位置左侧没有数字或/
[0-9]+
-一个或多个数字(?!/?[0-9])
-一个负前瞻,确保没有可选的/
,后面紧跟着当前位置右侧的数字