你如何匹配[]与正则表达式?

时间:2011-05-16 10:31:25

标签: regex

我以为我在做\[/b\]

但机器不同意。

3 个答案:

答案 0 :(得分:6)

  

如何将[ ]与正则表达式匹配?

\[ \]应该做得很好。至少在Java正则表达式引擎中。

System.out.println("[ ]".matches("\\[ \\]"));   // prints true

不知道从哪里获得/b。也许你是在追求一个“空白”角色。空白字符最常见的表达式是\s。即,你可以做\[\s\]


(匹配平衡 [ ]是另一个故事。正则表达式不太适合的任务。)

答案 1 :(得分:0)

如果不知道正在使用的正则表达式,那么很难回答,但是:

如果您正在用包含它们的语言(如JavaScript)编写正则表达式文字,那么只需在[]前加一个反斜杠即可。 E.g:

var re = /\[\/b\]/;

...创建一个正则表达式,该表达式将匹配[后跟/,后跟b后跟]。 (我不得不逃避/因为在JavaScript正则表达式文字中,当然/是分隔符。)

在使用字符串指定正则表达式(例如Java)的语言中,转义可能会令人困惑,因为您必须使用反斜杠转义,但当然反斜杠在字符串中是特殊的所以你必须逃避它们。你最终得到了很多:

Pattern p = Pattern.compile("\\[/b\\]");

这会创建一个正如上面那样做的正则表达式,但请注意我们如何逃脱逃逸。

答案 2 :(得分:0)

'^[a-z]' // Should do fine in UNIX and possibly PERL/PHP too.

示例一,使用grep命令(类似于find)

grep '^[A-Z].?' file.txt

查找以大写字母开头的单词,然后查看是否为大写字母后的任何字符。

希望有所帮助。

DL