根據您的要求,這裏是一個正則表達式,應該與您列出的五個確切字符串中的任何一個匹配。如果這不是你的意思,那麼請澄清。
Regex pattern = new Regex(@"(ads<r>_aimDate50ms\.Good)|(ads<t>Valid#)|(tactics_priorityT)|(tactics_SelectedADS#)|(ads3bValid#)");
編輯
你的要求仍然十分手工波浪。我們試着定義一些特定的規則。我想,也許我們想:
- 一個或多個字母,其次是
- 零個或多個字母或數字或下劃線,其次是
- 零個或一個
#
字符
- OR -
- 一個或多個字母,其次是
- 零個或多個字母或數字或下劃線,其次是
- 只有一個
<
性格,其次是
- 只有一個字母,其次是
- 只有一個
>
性格,其次是
- 一個或多個字母或數字或下劃線或
.
字符,其次是
- 零個或一個
#
字符
這是在球場?這些規則將與你的例子相匹配,但它們仍然可能不是「正確的」。當我說你需要具體時,這就是我的意思。如果你能清楚地描述這個模式是什麼,那麼你可以爲它編寫一個正則表達式。如果你無法辨別出一組規則來描述這個模式,那麼就沒有辦法將它變成一個正則表達式。
您是否可以更新您的問題以列出模式的特定規則?對於我們需要知道的模式的每個部分:您期望什麼樣的字符或字符,以及它們中可以連續出現多少個字符或字符。例如,零個或多個,一個或多個,只有一個,等
EDIT 2
基於更新後的問題,我想我可以拍攝。當你說「anyNoOfCharacters」時,你沒有說明什麼是字符。但是,如果你的字面意思是包括空格,標點符號等字符,那麼正則表達式不會很有用,因爲它可以匹配所有的東西。所以我會假設你的意思只是在這種情況下的字母。
這裏是你的規則翻譯成正則表達式(與我有關 「anyNoOfCharacters」 假設沿着):
[A-Za-z]*<.>[A-Za-z]*\.[A-Za-z]*
[A-Za-z]*<.>[A-Za-z]*#
[A-Za-z]*_[A-Za-z]*#
[A-Za-z0-9]*#
爲了得到這個成一個單一的正則表達式,你可以合作通過在每個規則周圍放置括號(
)
並在它們之間添加|
來使術語更爲寬泛。因此,我們有:
Regex pattern = new Regex(@"([A-Za-z]*<.>[A-Za-z]*\.[A-Za-z]*)|([A-Za-z]*<.>[A-Za-z]*#)|([A-Za-z]*_[A-Za-z]*#)|([A-Za-z0-9]*#)");
我猜這是接近,但仍可能不完全在那裏。你有足夠的地方可以採取這種做法並根據需要進行改進嗎?如果沒有,請澄清更多。
你說的意思是 「驗證」?你只是要求一個匹配所有這些字符串的正則表達式嗎?如果是這樣,我認爲答案根本不是。 – 2013-03-21 04:39:20
您的要求非常模糊。你想要一個正則表達式來尋找你列出的5個確切的字符串,或者這些只是一個更大的集合的例子?如果是後者,字符串的哪些部分會有所不同? – 2013-03-21 04:42:04
@BrianRogers這組字符串位於文檔的行之間。是的正則表達式僅適用於我列出的五個字符串。 – 2013-03-21 04:54:14