2013-12-21 5 views
-1

Я хочу REGEX проверить формат ниже строк - {Любой строки с любым количеством слов}[ {любого года} ] [R {десятичных количество < 10 с 1 точностью, как 2,5} ] [ {любая строка, верхний регистр} ] [ {любая строка} ] До сих пор я придумал следующего RegexRegex для определенного формата

/.*/\s[^\d{4}$]\s[R[0-9]+(\.[0-9]?)?]\s[[A-Z]*]\s[[A-Z]*] 

, но он работает только для [ {любого года} ] [R {любого десятичного числа < 10 с 1 точность, как 2,5} ] [ {любая строка, верхний регистр} ] [ {любая строка} ]. Я не могу получить первую часть права. Например, строка - Один хороший день [1990] [R7.8] [XY] [Документ].

+1

вы можете определить "действительный год"? 44, 1515, 2037? –

+0

Исправлено, теперь не могли бы вы помочь? – Priyam

+0

'@" ^. *? \ [\ D {4} \] \ s * \ [R \ d + \. \ D + \] \ s * \ [[AZ] + \] \ s * \ [[^ \ ]] * \] $ "' – hwnd

ответ

0

Может быть что-то вроде этого

# @"^.+?[ ]\[\d{4}\][ ]\[R\d\.\d\][ ]\[[A-Z]+\][ ]\[.+?\]$" 

^       # BOS 
.+?       # {Any String with any number of words} 
[ ]       # space 
\[ \d{4} \]     # [{any year}] 
[ ]       # space 
\[R \d \. \d \]    # [R{any decimal number <10 with 1 precision like 2.5}] 
[ ]       # space 
\[ [^a-z]+ \]    # [{any string, Upper Case}] 
[ ]       # space 
\[ .+? \]     # [{any string}] 
$       # EOS 
0

Это должно работать:

[\w\s]+\[.{0,3}[0-9]\]\s\[R[0-9]\.[0-9]\]\s\[[A-Z]+\]\s\[\w+\] 

Я новичок в регулярном выражении, поэтому, пожалуйста, поправьте, если какие-либо изменения должны быть сделаны.

+1

Это ответ или вопрос? – ramaral

Смежные вопросы