正则表达式:?=?\ d {4}:它匹配什么?

问题描述:

在C#类中,我遇到了这个正则表达式:正则表达式:<?>?=? d {4}:它匹配什么?

<?>?=?\d{4} 

很明显,它的最后一部分(\d{4})匹配4位小数但是<?>?=?怎么样?它匹配什么?

感谢您的任何解释。

四个数字位于<,>=前面的零位或一次。

匹配度:

<>=1234 
>=1234 
=1234 
1234 
<=1234 
+1

@adorablepuppy - 我想OP解释了\ d {4}'所以他们没有打扰:) – manojlds 2011-06-15 05:17:32

+0

@adorablepuppy:我选择回答这个问题,而不仅仅是标题... – Guffa 2011-06-15 05:43:15

+0

@Guffa,正如我上面所说的,我只是认为表达完整的正则表达式是一个更好的答案。这又说了,你的答案也是正确的,霍华德也是如此。我给了你们每个人有答案的投票。我的评论并不打算冒犯任何人。相反,这意味着向回答者表示感谢,并给出一个很好的答案。我会删除我原来的评论。 – adorablepuppy 2011-06-15 13:35:21

表达式'<?>?=?'与'<'char(或没有)匹配,可能后跟'>',可能后跟'='。因此,所有以下的将匹配:

  1. ''
  2. '<'
  3. '>'
  4. '='
  5. '<>'
  6. '< ='
  7. '
  8. '='
  9. '<>''

问号后的字符使其可选的,所以它的任何组合,其中的每个字符可存在或不匹配:

  • <> =
  • < >
  • < =
  • <
  • > =
  • >
  • =  
  •  

它可能意味着以匹配自己的任何三个大字的,但你宁愿使用[<>=]?代替。