捕获可选的周围字符



我不太懂正则表达式,所以我不知道如何实现以下目标:

我想从输入中捕获任何任意字符串,这些字符串可能被"$"字符包围,也可能没有。如果字符串的开头存在"$"字符,则结尾的"$"必须存在。

目前我有

^w+([_.-]w+)*$

大致翻译为:

  1. Arbitary字字符
  2. 捕获组的开始
  3. "_"、"."、"-"的任何字符
  4. 在可选的\n

所以有效的匹配是:

test
test-5
test.1.3
test-alpha.2

现在我想让成为可能

$test$

但不是。。。

$test (or test$)
^(?:(?:w+(?:[_.-]w+)*)|$test$)$

最好用|来添加它,而不是关闭对原始的修改。请参阅演示。

https://regex101.com/r/wU7sQ0/32

最新更新