2014-03-05 25 views
1

我有以下問題:如何接受一個字「345-0」,並在同一行拒絕「555-55.00」

我有四種文本:

1)「345- 0屬於合同 「

2) 」345-0屬於合同555-55.00「

3) 」未找到「

4)」 345-0屬於合同帳戶自22/10/2014起「

結果: 1)應該找到文本

2)應該忽略文本

3)應該忽略文本

4)如果找到文本

如何安裝用於查找一個圖案345-0(999-9),同一段中沒有格式555-55.00(999-99.99)?

+0

如果你正在尋找一個特定的範圍,即:345-0通過999-9,您應該提及。 – sln

回答

0

您可能想要使用正則表達式。

可能的圖案可以是@"^[0-9-]+[^0-9-]*$"

上述將發現,接着用非數字字符數字和連字符的任意組合開始的任何字符串。

Regex.IsMatch("345-0 belongs to a contract", @"^[0-9-]+[^0-9-]*$"); // True 
Regex.IsMatch("345-0 belongs to the contract 555-55.00", @"^[0-9-]+[^0-9-]*$"); // False 
Regex.IsMatch("The account not found", @"^[0-9-]+[^0-9-]*$"); // False 
+0

該模式建議不起作用: 我需要在段落中不應該存在999-99.99的睫毛膏,但任何其他字符,包括數字,字母,破折號等,例如:「345-0自22/10/2014「失敗......應該查閱這段文字。 –

+0

也許你應該更新你的問題,然後包括你想要的更多細節。 – Dimitri

0

這可能會實現(幾乎與去年相同的問題)

# @"(?s)^(?=(?:(?!\d+-\d{2}\.\d{3}).)+$).*\d+-\d.*$" 

(?s)    # Dot-All 
^     # BOS 
(?=    # Not this form anywhere in the string 
     (?: 
      (?! \d+ - \d{2} \. \d{3}) 
      . 
    )+ 
     $ 
) 
.* \d+ - \d .* # Form needed 
$     # EOS 
相關問題