1

在我的正则表达式中,我想说的是,在示例文本中,任何字符都是允许的,包括大小写的 az、数字和特殊字符。

例如,我的正则表达式可能正在检查文档是否为 html。所以:

"/\n<html>[]+</html>\n/"

我试过 []+ 但它似乎不喜欢这样?

4

2 回答 2

3

Using[XXX]+表示介于[and之间的任何字符],一次或多次。

在这里,您没有在[and之间放置任何字符]- 因此出现了问题。


如果你想说“任何可能的字符”,你可以使用.
注释:默认情况下,它不会匹配换行符;如果您愿意,您将不得不使用Pattern Modifiers

如果你想说任何字母,你可以使用:

  • 对于小写:[a-z]
  • 对于大写:[A-Z]
  • 对彼此而言 :[a-zA-Z]

而且,对于数字:

  • [0-9]: 任何数字
  • [a-zA-Z0-9]: 任何小写或大写字母,以及任何数字。


那时,您可能想看看:

  • PCRE 手册的反斜杠部分
  • 尤其是\w元字符,意思是“任何单词字符”


之后,当您开始使用正则表达式时,例如

/.+/s

应该匹配:

  • 任何可能的字符
    • 包括换行符
  • 一次或多次

你会看到它并没有在你期望的时候“停止”——那是因为匹配是贪婪的,默认情况下——你必须在 ,?之后使用 a+或使用U修饰符; 有关更多信息,请参阅重复部分。


好吧,实际上,如果您想开始使用正则表达式 ,最好花点时间仔细阅读手册的PCRE 模式部分中的所有内容;-)


哦,顺便说一句:使用正则表达式解析HTML 是个坏主意……

使用 DOM 解析器通常要好得多,例如:

于 2010-04-04T10:35:20.337 回答
2

.是“任何字符”的元字符

于 2010-04-04T10:31:41.580 回答