改善正则表达式

时间:2015-02-23 00:29:54

标签: regex

我正在寻找替代方法从提供的示例中获取john。 我的表达式按原样运行,但希望有一些更好的方法的例子。

示例:john&home

我的正则表达式:[a-z]{3,6}[^&home]

我匹配长度为3-6但不包括&home

的任何字符

我运行正则表达式的每个项目都采用相同的格式。 3-6个字符后跟&home

我查看了其他帖子,但希望得到特定于我的正则表达式的回复。

1 个答案:

答案 0 :(得分:1)

大多数正则表达式引擎允许您使用捕获组捕获正则表达式的一部分。例如:

^([A-Za-z]{3,6})&home$

此处的括号表示您对&home之前的部分感兴趣。 ^$表示您要匹配整个字符串。没有它,averylongname&homeofsomeone也将匹配。

由于您使用 rubular ,我假设您使用Ruby正则表达式引擎。在这种情况下,您可以使用:

full = "john&home"
name = full.match(/^([A-Za-z]{3,6})&home$/).captures

在这种情况下,name将包含john