捕获可选的周围字符

时间:2015-02-27 14:29:52

标签: c# regex string parsing

我在正则表达式中并不精通,所以我不确定如何实现以下目标:

我想从输入中捕获任何可能会或可能不会被' $'包围的任意字符串。字符。如果是' $'字符串出现在字符串的开头,' $'最后的角色必须存在。

目前我有

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

大致翻译为:

  1. 任意字词
  2. 捕获组的开始
  3. ' _','。',' - '
  4. 的任何字符
  5. 在选择\ n
  6. 之前

    所以有效的匹配是:

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

    现在我想使这成为可能

    $test$
    

    但不是......

    $test (or test$)
    

1 个答案:

答案 0 :(得分:3)

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

最好用|添加,而不是修改原始版本。参见演示。

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