2017-03-06 30 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