2012-01-04 129 views
2

我有一個字符串,Exampe字符之間添加一個可選空格的字符串

string SampleString = "F456-G12345-9090-GHI" 

我需要在上面的字符串中的所有字符之間添加一個可選的空白。

上面的字符串需要匹配相同的字符串,它可能會或可能不會有ewach字符之間的空格。另一個字符串會像

string samplestring1 = "F456-G12345- 9090 -GHI" 

感謝 帕德瑪

+0

你能否詳細說明一下字符串。例如,它是否使用空格和破折號分隔大寫字母和數字?這將有助於構建更加靈活和簡潔的表達。 – 2012-01-04 16:46:25

回答

0

你可能會到每個字符之間添加\s*。 (爲空白或其他控制字符)

\s*F\s*4\s*5\s*6\s*-\s*G\s*1\s*2\s*3\s*4\s*5\s*-\s*9\s*0\s*9\s*0\s*-\s*G\s*H\s*I\s* 

,或者根據您的正則表達式的話,你也許可以通過選擇忽略源文本的空白,但是這將取決於它的正則表達式庫你使用。

+0

你的斜槓是錯誤的 - 它不是'/ s'。 – 2012-01-04 16:44:37

+0

@JasonMcCreary謝謝。固定。 – McKay 2012-01-04 16:46:59

2

我不是很積極,我明白你會匹配什麼。如果你正在尋找一個特定的字符串,那麼最簡單的方法就是用字符串替換所有的空白字符,然後進行匹配。

在Perl中我會做:

$string =~ s/\s//g; 
while ($string =~ m/F456-G12345-9090-GHI/g) { 
    # Do something 
} 

如果您正在尋找多個字符串,而不僅僅是特定的一個,你可能只是想添加\ S作爲潛在的匹配[\ W \但是,如果你要與特定的字符串進行匹配,那麼我只是先扔掉整個空白布,而不是執行昂貴的正則表達式檢查(並放棄)檢查之前發現的任何空格字符串。

+0

我需要將字符串F456-G12345-9090-GHI與txt文件中的相同字符串進行比較。但是有時候txt文件中的字符串有多行。例如F456-G12345-9090-GHI變爲F456-G12345-9090-GHI。我需要檢查F456-G12345-9090-GHI == F456-G12345-9090 -GHI – user1130352 2012-01-04 18:16:08