Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对c中的正则表达式只验证和传递有效字符#_C#_Regex - Fatal编程技术网

C# 对c中的正则表达式只验证和传递有效字符#

C# 对c中的正则表达式只验证和传递有效字符#,c#,regex,C#,Regex,我正在研究一个解决方案,在这个解决方案中,我只需要验证和传递c#中字符串的有效字符。 例如,我的正则表达式是:“^\\S(|(.|\\n)*\\S)\\Z” 下面是我想要验证的文本 127 Finchfield Lane 现在我知道它是无效的。但是,如何删除针对regex的invalid并仅在针对regex的字符串验证成功时通过?如果我理解正确,您正在寻找regex.IsMatch if(Regex.IsMatch(str, "^\\S(|(.|\\n)*\\S)\\Z")) { //

我正在研究一个解决方案,在这个解决方案中,我只需要验证和传递c#中字符串的有效字符。 例如,我的正则表达式是:
“^\\S(|(.|\\n)*\\S)\\Z”
下面是我想要验证的文本

127 Finchfield Lane

现在我知道它是无效的。但是,如何删除针对regex的invalid并仅在针对regex的字符串验证成功时通过?

如果我理解正确,您正在寻找
regex.IsMatch

if(Regex.IsMatch(str, "^\\S(|(.|\\n)*\\S)\\Z"))
{
    // do something with the valid string
}
else
{
    // strip invalid characters from the string
}

这似乎符合你的要求。希望我没有误解。

要根据regex验证字符串,可以使用regex.IsMatch

Regex.IsMatch(string, pattern) //returns true if string is valid
如果只想获得匹配值,则可以使用它

Match match = new Regex(@"\d+").Match(str);
match.value;  //it returns only the matched string and unmatched string automatically stripped out

你认为“有效字符”是什么?@ MaHaaj34?或任何other@SjorsOttjes如果字符串通过正则表达式,这意味着它是有效的。@BalajiMarimuthu我想首先检查字符串字符是否对正则表达式有效。。如果没有,那么把那些无效的字符从StrugIT中剥离出来,从根本上看不清你认为是有效的或无效的字符。我也在寻找如何删除无效的字符,但是我是如何条纹的。那是我的question@Mahajan344如果你知道你想剥掉(或保留)哪些角色,那么回答这个主要问题就容易多了。。我只有正则表达式。。我必须对其进行验证。。。如果它通过了,那就意味着它是有效的。。如果不是,则表示其字符串无效。。所以我必须移除那些无效的…@Mahajan344,那样的话我就无能为力了。如果你不知道什么是有效输入,我认为没有办法解决这个问题。您现在使用的正则表达式匹配非常广泛的字符串,使用该正则表达式来验证某些东西似乎不是一个好主意,因为当我检查regex.IsMatch(“BAYR BALLAGAWNE”),它返回true。。但传递给上述方法的相同字符串返回的值为blank@Mahajan344在图案前面使用@符号。Regex.IsMatch(“BAYR BALLAGAWNE”,“@”^\S(|(.|.\n)*\S)\Z”)@Mahajan344该字符串的什么原因使您认为它应该返回false?@BalajiMarimuthu如果这样做,则需要删除双反斜杠。当然,除非OP希望在模式中包含这些反斜杠文字。@Mahajan344您的模式返回值,因此返回true。
Match match = new Regex(@"\d+").Match(str);
match.value;  //it returns only the matched string and unmatched string automatically stripped out