特定格式的正则表达式

时间:2013-12-21 18:12:44

标签: c# regex

我希望REGEX检查以下字符串的格式 - {包含任意数量字词的任意字符串} [ {任何年份} < strong>] [ R {任意十进制数&lt; 10,精度为1,精度为2.5} ] [ {任意字符串,大写字母} ] [ {any string} < /强> 直到现在我已经提出以下REGEX

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

但它只适用于 [ {任何年份} ] [ R {任意十进制数&lt; 10,1精度,如2.5} ] [ {any string,Upper Case} < / strong> ] [ {any string} ] 。我无法让第一部分正确。 字符串例如 - 一个好日子[1990] [R7.8] [XY] [文件]

2 个答案:

答案 0 :(得分:0)

这应该有效:

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

我是正则表达式的新手,所以如果要进行任何修改,请更正。

答案 1 :(得分: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