我想在字符串中执行不区分重音的替换.我希望'客户'匹配'cliënt',反之亦然.
我的代码看起来像这样:
Regex reg = new Regex("client");
string result = reg.Replace("here goes the content with client and cliënt", "replacementWith");
Run Code Online (Sandbox Code Playgroud)
那么,我如何确保'客户'匹配'客户'和'cliënt',反之亦然?
您可以将其包含在正则表达式中
\n\nRegex reg = new Regex("cli[e\xc3\xab]nt"); // will match both \'client\' and \'cli\xc3\xabnt\' \n
Run Code Online (Sandbox Code Playgroud)\n\n或者您可以删除字符串中的所有重音符号,然后应用正则表达式。
\n\nstring test = "here g\xc3\xb3es the c\xc3\xb3ntent with client and cli\xc3\xabnt";\n\nchar[] replacement = { \'a\',\'a\',\'a\',\'a\',\'a\',\'a\',\'c\',\'e\',\'e\',\'e\',\'e\',\'i\',\'i\',\'i\',\'i\',\'n\',\'o\',\'o\',\'o\',\'o\',\'o\',\'u\',\'u\',\'u\',\'u\',\'y\',\'y\' };\nchar[] accents = { \'\xc3\xa0\',\'\xc3\xa1\',\'\xc3\xa2\',\'\xc3\xa3\',\'\xc3\xa4\',\'\xc3\xa5\',\'\xc3\xa7\',\'\xc3\xa9\',\'\xc3\xa8\',\'\xc3\xaa\',\'\xc3\xab\',\'\xc3\xac\',\'\xc3\xad\',\'\xc3\xae\',\'\xc3\xaf\',\'\xc3\xb1\',\'\xc3\xb2\',\'\xc3\xb3\',\'\xc3\xb4\',\'\xc3\xb6\',\'\xc3\xb5\',\'\xc3\xb9\',\'\xc3\xba\',\'\xc3\xbb\',\'\xc3\xbc\',\'\xc3\xbd\',\'\xc3\xbf\' };\n\n\nfor (int i = 0; i < accents.Length; i++)\n{\n test = test.Replace(accents[i], replacement[i]);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n这不是很有效,但对于少量文本来说可以完成工作。
\n 归档时间: |
|
查看次数: |
4768 次 |
最近记录: |