字符串集可以是这些。
1)anyNoOfcharacters< anycharacter> anyNoOfcharacters。 anyNoOfcharacters
2)anyNoOfcharacters< anychar> anyNoOfcharacters和'#'(作为最后一个字符串)
3)anyNoOfcharacters“_”anyNoOfcharacters和“#”
4)anyNoOfcharacters和anyNoOfdigits后跟“#”
可以有一个可以验证上述所有字符串的REgex吗?
这是我到目前为止所做的......
Regex pattern = new Regex(@"^[a-zA-Z0-9\_]+[a-zA-Z0-9#.-] | [\b\w\d] | ");
任何人都可以根据我的要求为上述模式添加条件。
提前致谢.. !!
答案 0 :(得分:1)
根据您的要求,这里的正则表达式应与您列出的五个完全字符串中的任何一个匹配。如果这不是你的意思,请澄清。
Regex pattern = new Regex(@"(ads<r>_aimDate50ms\.Good)|(ads<t>Valid#)|(tactics_priorityT)|(tactics_SelectedADS#)|(ads3bValid#)");
修改强>
您的要求仍然非常手工制作。让我们尝试定义一些特定的规则。我想也许我们想要:
#
字符- 或 -
<
个字符,后跟>
个字符,后跟.
字符,后跟#
字符这是在球场吗?这些规则将与您的示例匹配,但它们仍然可能不“正确”。当我说你需要具体时,这就是我的意思。如果您可以清楚地描述模式是什么,那么您可以为它编写正则表达式。如果您无法辨别一组规则来描述模式,那么就无法将其转换为正则表达式。
您能否更新您的问题,立即列出该模式的具体规则?对于模式的每个部分,我们需要知道:您期望什么样的字符或字符,以及它们中有多少可以连续出现。例如,零或更多,一个或多个,恰好一个等等。
编辑2
根据您更新的问题,我想我可以试一试。当你说“anyNoOfCharacters”时,你没有说明什么是KIND字符。但是,如果你的字面意思是任何类型的字符,包括空格,标点符号等,那么正则表达式就不会非常有用,因为它几乎可以匹配所有内容。所以我假设你的意思只是那个字母。
以下是您的规则(以及我对“anyNoOfCharacters”的假设)翻译成正则表达式:
[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]*#)");
我猜这很接近,但可能还不完全存在。你有足够的地方可以采取这些并根据自己的需求进行改进吗?如果没有,那么请澄清更多。
答案 1 :(得分:0)
这就是你想要的
Regex pattern = new Regex(@"[^\s]+");
根据您的评论尝试此
Regex pattern = new Regex(@"(?:[^\s]*[_#\.][^\s]*)[^\s]+");