2012-04-02 85 views
-5

我有一個字符串是這樣的:我將如何從除Perl中的關鍵字以外的字符串中移除所有內容?

component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2) 

我能夠刪除不需要的字符並得到一個乾淨的字符串是這樣的:

component kw1 tap rt path to file1 kw1 path to file2 kw2 

現在我想去除一切,但KW1和KW2,所以我最後的字符串應該是:

kw1 kw2 

謝謝。

編輯:字符串可以改變,關鍵字(千瓦)的位置也可以改變。

+0

我不介意被評爲負面的,但如果是一個原因,使得它有點真實的東西,從學習中給出。 – infinitloop 2012-04-02 16:35:04

+1

請告訴,電腦應該怎麼知道'kw1'和'kw2'是什麼?他們會永遠是一樣的,他們周圍的東西總是會一樣的......?這是你必須在你的問題中包含的信息,才能使它有意義。 – cHao 2012-04-02 16:35:34

+0

對不起,如果我在這裏造成混亂,kw1/kw2只是我正在尋找的關鍵字。字符串當然可以改變。 – infinitloop 2012-04-02 16:37:38

回答

2

這是一個遠射,因爲你不知道什麼是kw1kw2什麼是特殊的,它不適用於字符串中其餘的單詞。

也許這對你有用?

use 5.12.0; 

my $s = 'component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)'; 

my @keywords = $s =~ m|([^/]+?)\s*\)|g; 

say for @keywords; 

輸出

kw1 
kw2 

編輯

如果是重要的字符串應就地進行編輯,該代碼使用相同的技術

use 5.12.0; 

my $s = 'component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)'; 

$s = join ' ', $s =~ m|([^/]+?)\s*\)|g; 

say $s; 

輸出

kw1 kw2 
+0

它應該是一行輸出或甚至更好的字符串修改... – 2012-04-02 16:48:01

+0

@downvoter:請讓我知道我的答案的問題? – Borodin 2012-04-02 16:49:00

+0

只是想知道...這個代碼需要perl v5.12嗎? – cHao 2012-04-02 16:52:46

相關問題