正则表达式用于以下表达式

时间:2013-06-03 18:14:47

标签: java android regex pattern-matching

我目前正在做一个Android应用程序。我正在尝试编写正则表达式以从字符串中提取以下类型的表达式。

表达式以方括号开头,后跟任意数量的字符。接下来是一个关闭的方括号。接下来是一个左括号,后跟任意数量的字符,后跟一个右括号。

[any character](any character)

例如,

if you want to apply for admission [click 1 here](www.abc.gid/heyde/ hduef) 
starting in the year 2013.

我需要从上面的

中提取 [click 1 here](www.abc.gid/heyde/ hduef)

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以在我测试here的示例中使用\[.*?\]\{.*?\}

这分为两个较小的正则表达式:

  1. \[.*?\],里面有任何字符的方括号。
  2. \{.*?\},其中包含任何字符的大括号。
  3. 这两个都在括号内使用非贪婪的.*。这样,如果每行有多个匹配,则不会同时捕获两个匹配。

答案 1 :(得分:0)

好吧,只要你不允许括号内的括号,它就不应该太难:

\[[^]]+]\([^)]+\)

如果您希望括号内至少有一个字符,请使用+,否则请使用*

表达式匹配如下:

\[ - 匹配空方括号

[^]]+ - 匹配不是结束方括号的所有内容

] - 匹配结束方括号

\( - 匹配首轮括号

[^)]+ - 匹配不是结束圆括号的所有内容

\) - 匹配结束圆括号