匹配序列的正则表达式
本文关键字:正则表达式 | 更新日期: 2023-09-27 18:04:54
字符串集可以像这样:
1) anyNoOfcharacters
2) anyNoOfcharacters
3) anyNoOfcharacters " _ " anyNoOfcharacters和" # "
4) anyNoOfcharacters and anyNoOfdigits后跟一个" #"
是否存在一个可以验证上述所有字符串集的正则表达式?
这是我到目前为止所做的…
Regex pattern = new Regex(@"^[a-zA-Z0-9'_]+[a-zA-Z0-9#.-] | ['b'w'd] | ");
有没有人可以根据我的要求在上面的图案上添加条件?
提前感谢…!!
根据您的需求,这里有一个正则表达式,它应该匹配您列出的五个精确字符串中的任何一个。如果这不是你的意思,那么请澄清。
Regex pattern = new Regex(@"(ads<r>_aimDate50ms'.Good)|(ads<t>Valid#)|(tactics_priorityT)|(tactics_SelectedADS#)|(ads3bValid#)");
编辑
你的要求还是很敷衍。让我们试着定义一些具体的规则。我想也许我们需要:
- 一个或多个字母,后面跟着
- 零个或多个字母、数字或下划线,后面跟着
- 零或一个
#
字符
——OR——
- 一个或多个字母,后面跟着
- 零个或多个字母、数字或下划线,后面跟着
- 正好一个
<
字符,后面跟着 - 正好一个字母,后面跟着
- 正好一个
>
字符,后面跟着 - 一个或多个字母、数字、下划线或
.
字符,后面跟着 - 零或一个
#
字符
这是正确的吗?这些规则将与你的例子相匹配,但它们仍然可能不是"正确的"。这就是我说你需要具体的意思。如果您可以清楚地描述模式是什么,那么您可以为它编写一个正则表达式。如果不能识别一组规则来描述模式,那么就没有办法将其转换为正则表达式。
你能把你的问题更新一下,列出这个模式的具体规则吗?对于模式的每一部分,我们都需要知道:你希望看到什么样的字符或字符,以及一行中可以出现多少字符。例如,零或多个,一个或多个,恰好一个,等等。
编辑2
根据你最新的问题,我想我可以试一试。当你说"anyNoOfCharacters"时,你并没有说明是什么类型的字符。但如果你指的是任何类型的字符,包括空格、标点符号等,那么正则表达式就不是很有用,因为它几乎可以匹配所有字符。所以我假设在这种情况下你只指字母。以下是您的规则(以及我对"anyNoOfCharacters"的假设)翻译成regex:
-
[A-Za-z]*<.>[A-Za-z]*'.[A-Za-z]*
-
[A-Za-z]*<.>[A-Za-z]*#
-
[A-Za-z]*_[A-Za-z]*#
-
[A-Za-z0-9]*#
要将其纳入单个正则表达式,您可以通过将括号(
)
放在每个规则周围并在它们之间添加|
来组合这些术语。因此,我们有:
Regex pattern = new Regex(@"([A-Za-z]*<.>[A-Za-z]*'.[A-Za-z]*)|([A-Za-z]*<.>[A-Za-z]*#)|([A-Za-z]*_[A-Za-z]*#)|([A-Za-z0-9]*#)");
我猜这很接近,但可能还没有完全到位。你有足够的地方可以把它提炼成你需要的东西吗?
这是你想要的
Regex pattern = new Regex(@"[^'s]+");
根据你的评论试试这个
Regex pattern = new Regex(@"(?:[^'s]*[_#'.][^'s]*)[^'s]+");