Regex 尝试在scala中使用jflap正则表达式
请参阅以下DFA 通过JFLAP创建。当我转换为regex时,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) ^
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)
我有两个简单的问题
在正式的正则表达式表示法中,
+
表示“或”。要使用的正则表达式类似于:
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)