Regex 正则表达式查找单词并允许字符串中单词后面的任何字符

Regex 正则表达式查找单词并允许字符串中单词后面的任何字符,regex,Regex,我有这根绳子 designer-brand-paradise-design-t-9999-123990-tshirt-print-18-preorder-11月交货 我需要从中提取preorder-*的任何实例,因为我有一点情况,有很多数据挥之不去 我不熟悉正则表达式,所以我希望这是一个简单的。非常感谢您提供的任何帮助看起来就像您想要获取以下所有内容的正则表达式: preorder-(.*) 这将匹配字符串的前序,然后将过去的所有内容放入一个组中。例如,在Java中,这将是: Pattern

我有这根绳子

designer-brand-paradise-design-t-9999-123990-tshirt-print-18-preorder-11月交货

我需要从中提取preorder-*的任何实例,因为我有一点情况,有很多数据挥之不去


我不熟悉正则表达式,所以我希望这是一个简单的。非常感谢您提供的任何帮助

看起来就像您想要获取以下所有内容的正则表达式:

preorder-(.*)
这将匹配字符串的前序,然后将过去的所有内容放入一个组中。例如,在Java中,这将是:

Pattern preorder_pattern = Pattern.compile("preorder-(.*)");
Matcher m = preorder_pattern.matcher(my_string);
if(m.find()) {
    // String my_string matches the pattern!
    String stuff_after_preorder = m.group(1);
}

要在单词“preorder-”后面添加所有文本吗?请使用
preorder-.*$
$
(字符串结束锚定符)并不是严格必需的,因为重复运算符匹配得非常好。但是,它记录了您的意图。您通常通过
$0
引用匹配的数据,但详细信息取决于宿主语言和正则表达式引擎的语法。顺便说一句,您在什么环境中?JAVAPHP?Python?@collapsar我必须检查特定于每个环境的文档,但我认为换行符有时会有所不同。有时候。不匹配换行符。preorder-.*会将所有内容匹配到换行符,而preorder-.*$在字符串“preorder asdf\nblahblah”中找不到匹配的部分(至少在Java中不会,除非您使用Pattern.DOTALL编译)@MatthewGunn您是对的。基于OP的示例,我默认在测试的字符串中不会出现换行符。除了dotall选项(fwiw,也可通过内联选项
(?s)
(?-s)
,用于匹配图案的部分)之外,还可以使用多行修改器(
图案。多行
(?m)
)。