我有一個字符串,其中不同的預定義關鍵字引入了不同的數據。有沒有辦法做到這一點,巧妙地使用正則表達式,或者什麼?這裏是一個例子:如何在Perl中使用關鍵字將字符串解析爲哈希?
關鍵字可以是"first name: "
和"last name: "
。現在,我想分析:
"character first name: Han last name: Solo"
到
{ "first name: " => "Han ", "last name: " => "Solo" }
當然,在輸入字符串的關鍵詞的順序是不固定的。這也應該工作:
"character last name: Solo first name: Han"
我知道有問題需要提出與空間等。我會在這裏忽略它們。
我知道如何解決這個問題循環不同的關鍵字,但我不覺得這非常漂亮。
拆分幾乎符合法案。它唯一的問題是它返回一個數組而不是散列,所以我不知道哪個是名字或姓氏。
我的例子有點誤導。這是另一個問題:
my @keywords = ("marker 1", "marker 2", "marker 3");
my $rawString = "beginning marker 1 one un marker 2 two deux marker 3 three trois and the rest";
my %result;
# <grind result>
print Dumper(\%result);
會打印:
$VAR1 = {
'marker 2' => ' two deux ',
'marker 3' => ' three trois and the rest',
'marker 1' => ' one un '
};
可以有多個名字和姓氏,比如'Jean Marc'或'Syu Kyi'嗎? – Zaid 2010-05-25 14:08:54
是的。該示例使用名稱,但它確實是一個字符串問題:匹配標記字符串並返回之間的所有字符作爲前一個標記的值。 – 2010-05-25 14:20:31