Gle*_*enn 1 regex powershell regex-lookarounds
我想验证一个字符串,当点“。”时正则表达式不匹配。之前或之后直接有“-”或“ _”。
我认为负面的前瞻是最好的方法,但我似乎无法正确地做到这一点。
您可以使用基于这个表达式lookarounds这将拒绝匹配其或者前面有一个点_或-或之后_或-
^.*(?<![-_])\.(?![-_]).*$
Run Code Online (Sandbox Code Playgroud)
电源外壳,
PS C:\Users\user> $reg = "^.*(?<![-_])\.(?![-_]).*$"
PS C:\Users\user> $str = "aaa . aaa"
PS C:\Users\user>
PS C:\Users\user> $str -match $reg
True
PS C:\Users\user> $reg = "^.*(?<![-_])\.(?![-_]).*$"
PS C:\Users\user> $str = "aaa ._ aaa"
PS C:\Users\user>
PS C:\Users\user> $str -match $reg
False
Run Code Online (Sandbox Code Playgroud)