كيف يمكنك أن tokenise / tokenize / تقسيم سلسلة محددة في بيرل؟
سؤال
وكيف تقسيم سلسلة على سبيل المثال "ل: ب: ج: د"؟ إلى الرموز للتحليل في بيرل
و(على سبيل المثال. باستخدام الانقسام؟)
وتبحث عن واضحة، والإجابة واضحة قبل كل شيء (ولكن لا تضيف أي الحكايات مثيرة للاهتمام من المعلومات بعد ذلك).
المحلول
نعم، انقسام هو ما تريد.
@tokens = split(/:/, "a:b:c:d");
foreach my $token (@tokens) {
....
}
نصائح أخرى
ويمكنك استخدام الانقسام. يمكنك أيضا استخدامه مع التعابير المنطقية.
my @tokens = split(/:/,$string);
لتحليل أكثر تقدما، أوصي تحليل :: RecDescent
وأيضا إلقاء نظرة على الوثائق التي تأتي مع بيرل عن طريق كتابة في موجه سطر الأوامر:
perldoc -f split
لبحث أسئلة وأجوبة تستخدم
perldoc -q split
وإذا كان لديك:
$a = "a:b:c:d";
@b = split /:/, $a;
وبعد ذلك تحصل على:
@b = ("a", "b", "c", "d")
في عام، هذه هي الطريقة التي يعمل انقسام:
split /PATTERN/,EXPR
وأين PATTERN
يمكن أن يكون الى حد كبير التعابير المنطقية. كنت لا تقتصر على الرموز بسيطة مثل ':
'
لا تنتمي إلى StackOverflow