2017-03-06 67 views
-1

我有一些字母数字字符串。从我必须找出那些满足以下条件的字符串,从字符串中获取单个字符的正则表达式

  1. 应该是整个字符串中只有一个字符,那应该是“E”
  2. “E”不应该出现在开头或者它应该出现在中间的字符串的结尾。

我要挑串像43e4234,435345e5

我可以做同样的事情在红宝石,但我有一个字符串数量庞大,我想一起去正则表达式只

+2

听起来像只是'/ \ A \ d + e \ d + \ z /'应该就够了。 –

+0

这没有任何意义。如果整个字符串中只有一个字符,那么'e'必须出现在开头和结尾。如果它*没有出现在开头或结尾,那么在那里必须有一些*其他*字符,然后字符串中至少有两个*字符。您的要求是矛盾的:不可能只有一个由一个字符组成的字符串,但同时包含多个字符。您发布的示例违反了约束#1,因为除了'e'之外,它们还包含字符'2','3','4'和'5'。 –

+0

'2,3,4,5'我被视为数字 –

回答

1

这应该工作:

/\A[^a-z]+e[^a-z]+\z/i 

这意味着:

  • 初串的
  • 至少一个非字母
  • 'E'
  • 至少一个非字母串

这里

  • 端是一个例子: https://regex101.com/r/H9oza7/1

    如果要匹配字符串内的行,请使用/^[^a-z]+e[^a-z]+$/im