正则表达式用于非字母数字分隔符(不是\ W)

时间:2015-05-08 16:00:02

标签: .net regex alphanumeric

我可能完全错过了一些东西,但这就是我所拥有的:

  1. - 需要防止无意中释放电话号码。
  2. - nnn-nnnn
  3. 形式的所有数字
  4. - 可以分隔或不分隔(例如,制表符,逗号,空格等)
  5. - 请勿阻止期刊文章或研究具有相似(但不完全相同)形式的数字 - 例如     xxxnnn-nnnnxxx(是的,有点矛盾''分隔',但是“x”     仅限字母数字)
  6. 所以,我有

    (\A|\s|\W)\d{3}-\d{4}(\Z|\s|\W)

    哪个有效! 几乎我想要的方式。几乎。 但是,\W^a-zA-Z0-9__是潜在的分隔符。已经尝试用\W替换^a-zA-Z0-9但没有成功(实际上,更糟),但可能指定不正确? FWIW,这将由.NET引擎评估。

2 个答案:

答案 0 :(得分:0)

试试这个

(\A|\s|[^a-zA-Z0-9])\d{3}-\d{4}(\Z|\s|[^a-zA-Z0-9])

答案 1 :(得分:0)

使用否定后瞻(?<!...)和否定前瞻(?!...)

(?<![^\W_])[0-9]{3}-[0-9]{4}(?![^\W_])