我不太懂正则表达式,所以我不知道如何实现以下目标:
我想从输入中捕获任何任意字符串,这些字符串可能被"$"字符包围,也可能没有。如果字符串的开头存在"$"字符,则结尾的"$"必须存在。
目前我有
^w+([_.-]w+)*$
大致翻译为:
- Arbitary字字符
- 捕获组的开始
- "_"、"."、"-"的任何字符
- 在可选的\n
所以有效的匹配是:
test
test-5
test.1.3
test-alpha.2
现在我想让成为可能
$test$
但不是。。。
$test (or test$)
^(?:(?:w+(?:[_.-]w+)*)|$test$)$
最好用|
来添加它,而不是关闭对原始的修改。请参阅演示。
https://regex101.com/r/wU7sQ0/32