如何捕获之间的单词是在特定文本结尾后使用正则表达式中的某些文本?

时间:2015-10-07 03:18:00

标签: regex

我想找到这样的东西:

-(IBOutlet)UIView *aView;

我想找aView,我可以确认-(IBOutlet)必须是一个前缀,但它不能确保空格或其他字符串,之后我们需要将其字符串化必须以'*'开头,直到与;匹配。

所以,我的正则表达式看起来像那样:

(IBOutlet)*\*?;

当然,它无法捕捉到我想要的东西。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你只需要逐步建立起来。我发现的最佳参考(到目前为止)是http://www.regular-expressions.info。在学习了基础知识之后,您可以使用许多在线模式匹配工具之一,这里有一个:

https://regex101.com

有了这个,你的目标很容易确定(有一些免费空间限制):

^\s*-\s*\(IBOutlet\)(\w*)\s*(\*\w*)

答案 1 :(得分:0)

第一个问题:你没有一个捕获组,所以你怎么在比赛结束后得到aView

其次,\*?表示“字面上匹配*字符,0或1次”,我猜这不是你想要的。

尝试这种模式:

(IBOutlet)*\*(.+);

RegEx 101可以解释每个组件的含义。