كيف يمكنك أن tokenise / tokenize / تقسيم سلسلة محددة في بيرل؟

StackOverflow https://stackoverflow.com/questions/659705

  •  20-08-2019
  •  | 
  •  

سؤال

وكيف تقسيم سلسلة على سبيل المثال "ل: ب: ج: د"؟ إلى الرموز للتحليل في بيرل

و(على سبيل المثال. باستخدام الانقسام؟)

وتبحث عن واضحة، والإجابة واضحة قبل كل شيء (ولكن لا تضيف أي الحكايات مثيرة للاهتمام من المعلومات بعد ذلك).

هل كانت مفيدة؟

المحلول

نعم، انقسام هو ما تريد.

@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 يمكن أن يكون الى حد كبير التعابير المنطقية. كنت لا تقتصر على الرموز بسيطة مثل ':'

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top