-4

我目前正在做一个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)从上面提取

任何帮助,将不胜感激。

4

2 回答 2

1

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

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

  1. \[.*?\],它是方括号,里面有任何字符。
  2. \{.*?\},这是带有任何字符的大括号。

.*这两个都在括号内使用非贪婪。这样,如果每行有超过一个匹配项,它不会将两者都作为一个匹配项来抓取。

于 2013-06-03T18:23:14.503 回答
0

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

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

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

表达式匹配如下:

\[- 匹配左方括号

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

]- 匹配右方括号

\(- 匹配开口圆括号

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

\)- 匹配右圆括号

于 2013-06-03T18:26:52.400 回答