字符串模式的正则表达式

时间:2017-12-04 11:26:18

标签: regex

正规新手在这里。我需要创建一个支持以下字符串的正则表达式:

<optional constant string 1><string 2><space><string 3>

此处常量字符串1为:ad_

Ex(允许的模式)。

[1]
ad_xyz.qwe.sty blah blah...
字符串1:ad_
字符串2:xyz.qwe.sty
string 3:blah blah ...(自由文本)

[2]
abc blah ...
字符串1 :(缺席)
字符串2:abc
字符串3:等等......(自由文本)

[3]
sdf.pqr blah blah blah...
字符串1 :(缺席)
string 2:sdf.pqr
string 3:blah blah blah ...(自由文本)

以下是我正在做的事情:

(?:[ad_]{0,1})?\-[a-zA-Z.]*\.[a-zA-Z0-9]*

现在只检测第一个模式。虽然我已经提到{0,1},但仍然必须使用string 1

2 个答案:

答案 0 :(得分:2)

您可以将此正则表达式用于第一组中的可选匹配项:

^(ad_)?(\w+(?:\.\w+)*)\s*(.*)$

RegEx Demo

在正则表达式[...]中,character class只有一个字符中的一个字符匹配,因此[ad_]匹配a或{{1}中的任何一个字符}或d

答案 1 :(得分:1)

我的建议是使用这个正则表达式字符串:

Drawable thisDrawable = drawableFromUrl(url);
toolbar.setLogo(thisDrawable);