我想替换与至少一个空白字符相邻的字符串中的所有非字母数字。
例如:“替换(来自 - this -string - 的所有非字母数字”应为“替换此字符串中的所有非字母数字”。< / p>
正确的正则表达式是什么?
我到目前为止最好的是:@"[^a-zA-Z0-9]\s+[\s+^a-zA-Z0-9]"
但是它不起作用
答案 0 :(得分:1)
你的正则表达式也匹配空格,它还需要两个空间两侧的非字母数字符号。
将此更改为OR-ed表达式,该表达式结合了以空格开头的非字母数字和非字母数字后跟空格:
@"[^a-zA-Z0-9](?=\s)|(?<=\s)[^a-zA-Z0-9]"
Lookahead和lookbehind constructs (?=...)
and (?<=\s)
是非捕获的,因此空间将保持不变。