我需要检查 Array1 中的 CHAR 是否包含我的 Array2 中的一些 CHAR,但我不能将 Contains 用于 CHAR...如何解决?

I need to check if CHAR from Array1 contains some CHAR from my Array2 but I cant use Contains for CHAR... How to solve it?

我需要将一个 phone 数字(写得不好)转换为正确的格式。示例:+ 420 741-854()642。到+420741854642 enter image description here

这是 RegEx(正则表达式)的工作 :) 你可以有这样的东西:/+?\d+/gm 这将 return 来自 +420741-854()642 的三个匹配项作为 [ '+420741', '854', '642'] 当然可以连接起来。您也可以事先将“+”替换为“00”,并连接来自 /\d+/gm 的匹配项。这只匹配字符串中的所有数字。

https://regex101.com/ 是学习正则表达式的绝佳资源。

从技术上讲,您可以在 Linq 的帮助下过滤掉数字 (c >= '0' && c <= '9'):

using System.Linq;

...

string source = "+ 420 741-854()642.";

string result = "+" + string.Concat(source.Where(c => c >= '0' && c <= '9'));

如果您想按照图片中显示的样式进行操作,则可以通过以下方式修复它:

        string number = "+ 420 741-854()642.";
        char[] povolene = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+' };

        for(int i = 0; i < number.Length; i++) {
            if (povolene.Contains(number[i])) {

                .
                .
                .
            }
        }

我想我只是用正则表达式替换所有非数字;

var messy = "+ 420 741-854()642";
var clean = Regex.Replace(messy, "[^+0-9]", "");

对于正则表达式模式 [^+0-9] 这意味着“单个字符来自以下集合:(所有字符除外)+09所以在实践中,这个模式匹配 space 、连字符 -、括号 () 等。并且任何匹配的字符(即坏字符)都被替换为空