gpt4 book ai didi

c# - 包含 "|"的正则表达式

转载 作者:行者123 更新时间:2023-12-02 15:04:42 26 4
gpt4 key购买 nike

我需要能够使用 | 检查模式在他们中。例如,对于像“dtest|test”这样的字符串,像 d*|*t 这样的表达式应该返回 true。

我不是正则表达式英雄,所以我只是尝试了一些事情,例如:

Regex Pattern = new Regex("s*\|*d"); //unable to build because of single backslash
Regex Pattern = new Regex("s*|*d"); //argument exception error
Regex Pattern = new Regex(@"s*\|*d"); //returns true when I use "dtest" as input, so incorrect
Regex Pattern = new Regex(@"s*|*d"); //argument exception error
Regex Pattern = new Regex("s*\\|*d"); //returns true when I use "dtest" as input, so incorrect
Regex Pattern = new Regex("s*" + "\\|" + "*d"); //returns true when I use "dtest" as input, so incorrect
Regex Pattern = new Regex(@"s*\\|*d"); //argument exception error

我有点没有选择,那么我应该使用什么?我的意思是这是我知道的一个非常基本的正则表达式,但由于某种原因我没有得到它。

最佳答案

在正则表达式中,* 表示“零个或多个(其前面的模式)”,例如a* 表示零个或多个 a,并且 (xy)* 期望匹配 xyxyxyxy... 形式.

要匹配任何字符,您应该使用.*,即

Regex Pattern = new Regex(@"s.*\|.*d");

(此外,| 表示“或”)

这里.将匹配任何个字符[1],包括|。为了避免这种情况,您需要使用字符类:

new Regex(@"s[^|]*\|[^d]*d");

这里[^x]表示“除x之外的任何字符”。

您可以阅读http://www.regular-expressions.info/tutorial.html了解有关正则表达式的更多信息。

[1]:除了换行\n。但如果您传递 Singleline 选项,. 将匹配 \n。嗯,这是更高级的东西......

关于c# - 包含 "|"的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com