我对正则表达式的了解不够多,所以这可能看起来是一个愚蠢的问题。
我将 string
拆分为 string[]
和 .Split(' ')
。
目的是检查单词,或替换任何单词。
我现在遇到的问题是,对于要替换的单词,它必须完全匹配,但是按照我拆分它的方式,可能会出现 (
或带有分割字的 [
。
到目前为止,为了解决这个问题,我正在使用这样的东西:
formattedText.Replace(">", "> ").Replace("<", " <").Split(' ')
。
目前效果很好,但我想合并更多特殊字符,例如 [;\\/:*?\"<>|&']
。
有没有比我的替换方法更快的方法,例如Regex?我感觉我的路线离最佳答案还很远。
编辑
This is an (example) string
将被替换为
This is an ( example ) string
最佳答案
如果您想替换整个单词,可以使用这样的正则表达式来实现。
string text = "This is an example (example) noexample";
string newText = Regex.Replace(text, @"\bexample\b", "!foo!");
newText
将包含 “This an !foo! (!foo!) noexample”
这里的关键是 \b
是分词元字符。因此它将匹配行的开头或结尾,以及单词字符 (\w) 和非单词字符 (\W) 之间的转换。它与使用\w 或\W 之间最大的区别是它们在行首或行尾不匹配。
关于c# - 使用正则表达式替换而不是字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15219925/