【问题标题】:How to match the following in PERL?如何在PERL中匹配以下内容?
【发布时间】:2014-06-17 14:40:00
【问题描述】:

我的 $string

"Eine Streitbeilegung i.S.e. Konfliktlösung kann auch durch Verlagerung auf außergerichtliche “Stellen” 埃尔福根。 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。在安德伦 Fällen besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländ) die Möglichkeit, in bestimmten Streitfällen freiwillig ein “Schiedsverfahren” durchzuführen, 也 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 宝石。 §§ 1025 英尺。 ZPO vereinbart werden。存在者 eine Vielzahl privater Güte-, Schieds- und Schlichtungsstellen, deren Anrufung freiwillig ist.法律文书 bestehen außerhalb der o.g. Recht-Sprechung bzw。德斯 gesetzlichen Richters und sind damit “alternativ”祖 gerichtlicher Streitbeilegung wählbar。"\

我想匹配上面段落中的以下字符串

$matchLines:

besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der 联邦德国)

我找不到这个字符串,但它存在于上述内容中,

我试过了:

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

请大家给点意见

提前致谢 维马尔

【问题讨论】:

  • 你能告诉我们$matchLines的值是多少吗?
  • 值是“besteht aufgrund von Landesgesetzen (z. B. Schlichtungsgesetze der Bundesländer)”

标签: php regex perl find match


【解决方案1】:

您不能直接将其匹配为regex,因为您必须在正则表达式中转义().。因此,您应该使用index 来检查字符串中是否存在子字符串或使用substr

如果你想使用正则表达式,它必须看起来像这样才能匹配:

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

演示:http://regex101.com/r/jK2fF5

【讨论】:

  • 感谢 sshashank 我尝试使用 quotemeta 并且现在可以正常工作了!
【解决方案2】:

【讨论】:

  • 我尝试使用 quotemeta 并且它现在工作正常!非常感谢
【解决方案3】:

您需要使用index 函数。

#!/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;

【讨论】:

    【解决方案4】:

    您可以使用 [RegexTester]:http://ccmpp.com/Regex/regex%20tester.htm 测试匹配或不匹配

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多