我需要一个正则表达式来替换任何单词中间的连字符,但不要触及前导或尾随或单独的连字符.这适用于Regex.Replace()中的.NET
我尝试了以下内容
\w[-]\w
Run Code Online (Sandbox Code Playgroud)
但这也捕获了连字符两侧的字符.举个例子,我需要的是以下字符串
- 测试 - 测试 - 测试
如果替换字符是!,成为
- 测试!测试 - 测试
任何帮助都很受欢迎
谢谢
詹姆士
如果我正确理解了这个问题,那就是匹配连字符,而不是旁边的单词.这是一个类似perl的正则表达式:
(?<=\w)-(?=\w)
Run Code Online (Sandbox Code Playgroud)
这是一个积极的后视断言,一个连字符和一个积极的先行断言.