不情愿的量词可能非常有用。但是,我无法想到使用??
,?
这个不情愿的版本。有人可以给我一个例子,还是只是因为其他量词也有不情愿的版本?
答案 0 :(得分:3)
这是一个使用??
量词的正则表达式示例:
(?:\w+-??|-\w+)
它匹配后跟连字符或连字符前面的每个单词。在foo-bar
中,它会与foo
和-bar
匹配,而不是foo-
和bar
匹配(?:\w+-?|-\w+)
。
答案 1 :(得分:1)
一个例子 - 在实践中可能没那么有用,但可以让你知道如何使用它(借口c#语法):
Match username = Regex.Match(input, @"^([\w\W]*?)(@[\w\W]+\.[\w\W])??$");
现在,这将是用户在输入表单中输入他的用户名或电子邮件地址,如果输入了电子邮件地址,则正则表达式仅抓取@
之前的部分。这样,不止一种类型的输入就可以了,无论是否提供@domain.com
,您仍然可以获得相同的数据。
免责声明:这是不我将用于上述目的的正则表达式 - 它与太多非电子邮件地址相匹配。但是,嘿,这是一个演示...;)
答案 2 :(得分:0)
如果你想要一个不同于其他捕获组的东西,也许可能。我不记得曾经看过它,也想不出一个不会做大做法的例子。