我有兩種情況:刪除一切
在第一個,我可能有這樣的字符串:
Posted 03-20-2017 More info Go to Last Post
而且我可以有這樣的字符串:
Posted today More info Go to Last Post
在這兩種情況下,我不想要更多信息...
我試過使用gsub
,但它不適用於這兩種情況。有人有可能的解決辦法嗎?
我有兩種情況:刪除一切
在第一個,我可能有這樣的字符串:
Posted 03-20-2017 More info Go to Last Post
而且我可以有這樣的字符串:
Posted today More info Go to Last Post
在這兩種情況下,我不想要更多信息...
我試過使用gsub
,但它不適用於這兩種情況。有人有可能的解決辦法嗎?
這可以通過在字符串上運行split("More info")
來實現。什麼,做是打破了字符串中的這樣一個數組:
new_string = "Posted today More info Go to Last Post"
new_string = new_string.split("More info")
# becomes ["Posted today ", " Go to Last Post"]
什麼分裂所做的就是在一個數組,其中每個元素是什麼之前的說法除了斷線。所以,如果你有"1,2,3"
然後split(",")
將返回[1, 2, 3]
所以繼續你的解決方案,你可以得到過帳日期是這樣的:
new_string[0].strip
.strip
在正面去掉空格或背串的,所以你只剩下"Posted today"
非常感謝。有效! –
在你的例子中你忘記了'split'的參數。另外,用數組覆蓋一個字符串變量通常不是一個好主意。你可以使用'string.split(「更多信息」)。第一個' –
@EricDuminil良好的捕獲 - 我添加了參數。 – octopushugs
使用Ruby sub,這會給你一個副本,第一個出現的模式被替換爲第二個參數。
所以它要你的整個字符串"Posted 03-20-2017 More info Go to Last Post"
,會發現你的模式和所有More info...
後會發生什麼,以及將與第二個參數More info
取代它,在這種情況下是一樣的第一個(你可以使用一個變量那裏)。
"Posted 03-20-2017 More info Go to Last Post".sub /More info.*/, 'More info'
=> "Posted 03-20-2017 More info"
此外gsub以類似的方式工作。
'/#{「More info」}。+/== /更多信息+ /' – steenslag
'/更多信息+/== /更多信息* /'(?) –
不工作!不知何故,它給了我相同的輸出「昨天發佈\ n \ n更多信息\ n \ n轉到最後發佈」 –
你應該發佈你用'gsub'試過的東西。你能澄清你想要提取的字符串的哪一部分?我想你想要「發佈於03-20-2017」或「今天發佈」。 – orde