Regex 在scala中查找字符串中的正则表达式模式

Regex 在scala中查找字符串中的正则表达式模式,regex,scala,Regex,Scala,我正在尝试创建一个正则表达式,它匹配包含/x+任意数字/的字符串,在此之前或之后可以写入任何内容 我尝试创建以下正则表达式。*/x+\\d*/.* 我试图匹配的字符串的一个例子是abc/x+10/tomory 诸如abc/x+/明天之类的字符串的计算结果应为false,但为true 也许 ^.*?x\+\d+.*$ 可能只是使用正确的基于语言的转义 如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况 您非常接近,您需要做的只是转义所

我正在尝试创建一个正则表达式,它匹配包含/x+任意数字/的字符串,在此之前或之后可以写入任何内容

我尝试创建以下正则表达式。*/x+\\d*/.*

我试图匹配的字符串的一个例子是abc/x+10/tomory

诸如abc/x+/明天之类的字符串的计算结果应为false,但为true

也许

^.*?x\+\d+.*$
可能只是使用正确的基于语言的转义

如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况


您非常接近,您需要做的只是转义所有的/和+,并将0和unlimited之间的\d*匹配更改为1和unlimited之间的\d+匹配,以避免明天匹配abc/x+/:

例如,您可以使用返回选项的

您应该匹配1+个数字,模式可以缩短为/x\+\d+/

输出

res0: Boolean = true
res1: Boolean = false

那是+文字吗?或者你是说你想要任何数量的X,只要有一个。另外,您确定带任何数字的输入有效吗?嗨!好问题:-如果您提供一些示例字符串和一些源代码,您可以改进它。您的正则表达式似乎工作正常,您是否正确地转义了所有文本?它现在可以处理转义字符,但发现了一个不同的错误,我在编辑的post@Carl您需要将\d*更改为\d+,以确保至少有一个数字在那里。它的计算结果应为false。abc/x+10明天的计算结果应为false,但不是,但您的正则表达式与此匹配
val pattern = """/x\+\d+/""".r
pattern.findFirstIn("abc/x+10/tomorrow").isDefined
pattern.findFirstIn("abc/x+/tomorrow").isDefined
res0: Boolean = true
res1: Boolean = false