我有以下(短url(字符串,可以通过以下三种方式:
- abc xy helloWorld
- abc xy你好世界欢迎
- abc xy你好世界欢迎回家
我只需要过滤"helloWorld"字符串,下面的(?<=abc-xy-).*
适用于情况#1,但我如何使它适用于所有3种情况,使它只过滤"helloWorld",而不管输入是1、2还是3。
.*
部分尽可能多地匹配除换行符之外的任何零个或多个字符。
在字符串中,helloWord
后面跟一个-
字符,而helloWorld
仅由字母组成。
因此,这里可能的解决方案是
(?<=abc-xy-)[a-zA-Z]+
(?<=abc-xy-)w+
(?<=abc-xy-)[^-]+
请参阅此处的regex演示。
[a-zA-Z]+
变体将匹配一个或多个ASCII字母,w+
将匹配一种或多种字母、数字或下划线,[^-]+
将匹配除-
之外的一个或多种字符。
注意,我在regex测试站点中使用[^-n]
,因为输入是单个多行文本,而在现实生活中,您将这些字符串作为单独的输入。