2009-10-27 74 views
1

我学习正则表达式,并不好受。有谁能告诉我,如果我在这两个问题的正确道路上?正则表达式质疑

- 用正则表达式(a | b)(c | elipson)指定的语言列出单词 - 我想答案是ac,bc,a,b。我对吗?

-Give正则表达式识别与奇数的的的所有单词。 - 我想到的是(A)(AA)*。如果我没有错,当单词只是'a'时,这应该总是与异常一起工作。如果这个词只是'a',我怎么能修改它以使其工作?

回答

4
  • 假设“epsilon”表示空字符串,那么你是正确的。

  • 你也与(A)(AA)正确*。在正则表达式语法中查找*意味着什么(并将其与+的含义进行比较)。

1

你的第二个答案只给出了有1,3,5,...... A的顺序话。如果您想包含所有的话 - 在任何地方 - 奇数的年代,你会想这样的somethig:

/a([^\s]*a[^\s]*a)*/

如果你严格,不希望得到与hypens话或其他非字母字符,这应该这样做:

/a([\w]*a[\w]*a)*/

(根据不同的正则表达式引擎,你需要[a-z]

更换[\w]