我目前正在做一个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)
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可以在我测试here的示例中使用\[.*?\]\{.*?\}
。
这分为两个较小的正则表达式:
\[.*?\]
,里面有任何字符的方括号。\{.*?\}
,其中包含任何字符的大括号。这两个都在括号内使用非贪婪的.*
。这样,如果每行有多个匹配,则不会同时捕获两个匹配。
答案 1 :(得分:0)
好吧,只要你不允许括号内的括号,它就不应该太难:
\[[^]]+]\([^)]+\)
如果您希望括号内至少有一个字符,请使用+
,否则请使用*
。
表达式匹配如下:
\[
- 匹配空方括号
[^]]+
- 匹配不是结束方括号的所有内容
]
- 匹配结束方括号
\(
- 匹配首轮括号
[^)]+
- 匹配不是结束圆括号的所有内容
\)
- 匹配结束圆括号