如何使用正则表达式提取子字符串

爱⌒轻易说出口 提交于 2020-02-27 22:00:51

我有一个字符串,其中有两个单引号'字符。 在单引号之间是我想要的数据。

如何编写正则表达式从以下文本中提取“我想要的数据”?

mydata = "some string with 'the data i want' inside";

#1楼

您不需要正则表达式。

将apache commons lang添加到您的项目( http://commons.apache.org/proper/commons-lang/ ),然后使用:

String dataYouWant = StringUtils.substringBetween(mydata, "'");

#2楼

有一个简单的方法:

String target = myData.replaceAll("[^']*(?:'(.*?)')?.*", "$1");

通过使匹配组为可选,这还可以通过在这种情况下返回空白来解决找不到引号的问题。

观看现场演示


#3楼

String dataIWant = mydata.split("'")[1];

观看现场演示


#4楼

String dataIWant = mydata.replaceFirst(".*'(.*?)'.*", "$1");

#5楼

如在javascript中:

mydata.match(/'([^']+)'/)[1]

实际的正则表达式为: /'([^']+)'/

如果您使用非贪婪修饰符(如另一篇文章所述),则如下所示:

mydata.match(/'(.*?)'/)[1]

它更干净。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!