我在正则表达式中并不精通,所以我不确定如何实现以下内容:
我想从输入中捕获任何可能会或可能不会被'$'字符包围的任意字符串.如果字符串开头出现'$'字符,则必须存在末尾的'$'字符.
目前我有
^\w+([_.-]\w+)*$
Run Code Online (Sandbox Code Playgroud)
大致翻译为:
所以有效的匹配将是:
test
test-5
test.1.3
test-alpha.2
Run Code Online (Sandbox Code Playgroud)
现在我想让这成为可能
$test$
Run Code Online (Sandbox Code Playgroud)
但不是...
$test (or test$)
Run Code Online (Sandbox Code Playgroud)
^(?:(?:\w+(?:[_.-]\w+)*)|\$test\$)$
Run Code Online (Sandbox Code Playgroud)
最好添加它,|而不是修改原始的。请参见演示。
https://regex101.com/r/wU7sQ0/32