正则表达式环视

Regex lookaround

当一切都很简单时,我们有一个正则表达式 /[^A-Za-z0-9]/ 一旦匹配,我们将替换为下划线

  American Football # American_Football
  Mini Golf         # Mini_Golf

但是,我们希望它匹配

  AR/ VR

我原以为否定回顾会起作用,但唉......为什么否定回顾不返回并确保 \/\s 不匹配?

 [^A-Za-z0-9](?<!\/\s)

谢谢

[^A-Za-z0-9](?<!\/\s) 匹配 AR/ VR 中的 / 因为它不是以 / 开头的空格,参见 this demo:

您似乎只想匹配字母数字字符之间的非字母数字字符:

/(?<=[A-Za-z0-9])\W(?=[A-Za-z0-9])/

参见 this regex demo

详情

  • (?<=[A-Za-z0-9]) - 就在前面,必须有一个字母数字字符
  • \W - 非单词字符(非字母、非下划线)字符
  • (?=[A-Za-z0-9]) - 紧接着,必须有一个字母数字字符。