RegEx用于在PowerShell中不匹配序列

Gle*_*enn 1 regex powershell regex-lookarounds

我想验证一个字符串,当点“。”时正则表达式不匹配。之前或之后直接有“-”或“ _”。

我认为负面的前瞻是最好的方法,但我似乎无法正确地做到这一点。

Pus*_*shi 5

您可以使用基于这个表达式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)