0
votes

My $string is

"Eine Streitbeilegung i.S.e. Konfliktlösung kann auch durch Verlagerung auf außergerichtliche “Stellen” erfolgen. Sie kann hierbei vom Gesetz für bestimmte Streitigkeiten obligatorisch angeordnet werden, z. B. § 15a EGZPO, so dass ein Schlichtungsverfahren einem gerichtlichen Rechtsstreit zwingend vorausgehen muss. In anderen Fällen besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländer) die Möglichkeit, in bestimmten Streitfällen freiwillig ein “Schiedsverfahren” durchzuführen, also zu wählen, ob direkt ein gerichtliches Verfahren angestrengt oder zunächst eine außergerichtliche Streitschlichtung durchgeführt wird. Weiterhin kann zur Erledigung bürgerlich-rechtlicher Streitigkeiten durch Vertrag ein Schiedsgerichtsverfahren gem. §§ 1025 ff. ZPO vereinbart werden. Daneben existieren eine Vielzahl privater Güte-, Schieds- und Schlichtungsstellen, deren Anrufung freiwillig ist. Diese Instrumente der Streitbeilegung bestehen außerhalb der o.g. Recht-Sprechung bzw. des gesetzlichen Richters und sind damit “alternativ” zu gerichtlicher Streitbeilegung wählbar."\

I want to match the following string in above paragraph

$matchLines:

besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländer)

I cant find this string but it is present in the above content,

I tried :

while ($string=~m/($matchLines)/gi) {
    print $string;
}

anybody please give any ideas

Thanks in advance Vimal

4
Can you tell us what the value of $matchLines is?SF Lee
value is "besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländer)"user3354853

4 Answers

1
votes

You need to use the index function.

#!/usr/bin/perl 
use strict;
use warnings;

my $string = 'Eine Streitbeilegung i.S.e. Konfliktlösung kann auch durch Verlagerung auf außergerichtliche “Stellen” erfolgen. Sie kann hierbei vom Gesetz für bestimmte Streitigkeiten obligatorisch angeordnet werden, z. B. § 15a EGZPO, so dass ein Schlichtungsverfahren einem gerichtlichen Rechtsstreit zwingend vorausgehen muss. In anderen Fällen besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländer) die Möglichkeit, in bestimmten Streitfällen freiwillig ein “Schiedsverfahren” durchzuführen, also zu wählen, ob direkt ein gerichtliches Verfahren angestrengt oder zunächst eine außergerichtliche Streitschlichtung durchgeführt wird. Weiterhin kann zur Erledigung bürgerlich-rechtlicher Streitigkeiten durch Vertrag ein Schiedsgerichtsverfahren gem. §§ 1025 ff. ZPO vereinbart werden. Daneben existieren eine Vielzahl privater Güte-, Schieds- und Schlichtungsstellen, deren Anrufung freiwillig ist. Diese Instrumente der Streitbeilegung bestehen außerhalb der o.g. Recht-Sprechung bzw. des gesetzlichen Richters und sind damit “alternativ” zu gerichtlicher Streitbeilegung wählbar.';

my $matchLines = 'besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländer)';

print "$matchLines\n" if index($string, $matchLines)>0;
0
votes

You cannot match it as a regex straightaway since you will have to escape the () and the . in a regex. Therefore, you should either use index to check if substring exists in string or use substr.

If you want to use regex, it would have to look like this to match:

besteht aufgrund von Landesgesetzen \(z\. B\. Schlichtungsgesetze der Bundesländer\)

Demo: http://regex101.com/r/jK2fF5

0
votes

you can test match or no bu using [RegexTester]:http://ccmpp.com/Regex/regex%20tester.htm