Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 尝试在scala中使用jflap正则表达式_Regex_Scala_Jflap - Fatal编程技术网

Regex 尝试在scala中使用jflap正则表达式

Regex 尝试在scala中使用jflap正则表达式,regex,scala,jflap,Regex,Scala,Jflap,请参阅以下DFA 通过JFLAP创建。当我转换为regex时,JFLAP给出: p+(q+pq)(pq)*(λ+p) 当我将其粘贴到Scala REPL中时: scala> val regex = "p+(q+pq)(pq)*(+p)".r java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 14 p+(q+pq)(pq)*(+p) ^

请参阅以下DFA

通过JFLAP创建。当我转换为regex时,JFLAP给出:

  p+(q+pq)(pq)*(λ+p)
当我将其粘贴到Scala REPL中时:

  scala> val regex = "p+(q+pq)(pq)*(+p)".r
  java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 14
  p+(q+pq)(pq)*(+p)
                ^
      at java.util.regex.Pattern.error(Unknown Source)
我有两个简单的问题

  • 这是正则表达式吗?为什么它包含λ

  • 既然在repl中粘贴时λ不能正确显示,那么如何在Scala中使用它


  • 在正式的正则表达式表示法中,
    +
    表示“或”。要使用的正则表达式类似于:

    p|(q|pq)(pq)*p?
    

    在正式的正则表达式表示法中,
    +
    表示“或”。要使用的正则表达式类似于:

    p|(q|pq)(pq)*p?
    

    哇,谢谢你。我尝试将+替换为|,下面的工作非常完美。scala>val regex=“p |(q | pq)(pq)*(| p)”.r regex:scala.util.matching.regex=p |(q | pq)(pq)*(| p)哇谢谢。我尝试将+替换为|,下面的工作非常完美。scala>val regex=“p |(q | pq)(pq)*(| p)”.r regex:scala.util.matching.regex=p |(q | pq)(pq)*(| p)