Regex 正则表达式匹配“/24af786e“;字母和数字
我有这个urlRegex 正则表达式匹配“/24af786e“;字母和数字,regex,Regex,我有这个urlhttp://localhost:64685/Forum/Runner/runner_job/24af786e 我希望regex检查url是否在url末尾有一个/后跟8个字母或数字(如url中的数字) 这是我迄今为止最好的尝试,我知道它不好也不正确:/[^/A-Z]{9}/g 有人能给我指引正确的方向吗 编辑 我是如何运行正则表达式的 Regex regex = new Regex(@"/\/[^\W_]{8}$/"); Match match = regex.Match(url)
http://localhost:64685/Forum/Runner/runner_job/24af786e
我希望regex
检查url是否在url末尾有一个/
后跟8个字母或数字(如url中的数字)
这是我迄今为止最好的尝试,我知道它不好也不正确:/[^/A-Z]{9}/g
有人能给我指引正确的方向吗
编辑
我是如何运行正则表达式的
Regex regex = new Regex(@"/\/[^\W_]{8}$/");
Match match = regex.Match(url);
if (match.Success)
{
url.Replace(match.Value, "");
}
使用
在替换为正则表达式之前,无需检查匹配项。请注意,您使用的是String.Replace
方法,而不是Regex.Replace
one,并且没有将新值分配给url
(字符串在C#中是不可变的)。看
详细信息:
-文字/
/
-正好有8个字母或数字([^\W{8}
匹配非单词([^\W}
)和\W
字符以外的字符)
-字符串结束$
如果您只需要匹配ASCII字母/数字,请传递
RegexOptions.ECMAScript
选项。使用此选项:/\/[a-zA-Z0-9]{8}$/
或/\/[^\W\u]{8}$/
@WiktorStribi\380;如果我将您的正则表达式与我的URL一起使用,请检查这个不错的工具@PeterHansen:您只使用ASCII吗?[^\W\u]之间有什么区别吗
和[a-zA-Z0-9]
?如果不是,那么在我看来后者更明确。@sp00m:请参阅我的最下面的注释。这是有区别的,因为在C#中,速记类默认支持Unicode,但我们可以使用专用选项将其关闭。另外,[\w-[\u]]
也是一个可读的.NET兼容构造,可以用来代替[^\w\u]
。拼写的变体也很好使用。因此,您的变体将匹配更多字符,例如a
或ô
,对吗?如果您没有通过RegexOptions.ECMAScript
,则是。
Regex regex = new Regex(@"/[^\W_]{8}$");
// Or, to make it match only ASCII letters/digits:
// Regex regex = new Regex(@"/[^\W_]{8}$", RegexOptions.ECMAScript);
url = regex.Replace(url, "");