在正则表达式中选择行的一部分

时间:2018-09-16 07:01:24

标签: regex regular-language

I have this string

#1#http://test.ir:8080/srvSC.svc#1#
#2#http://test.ir:8081/srvSC.svc#2#
#3#http://test.ir:8082/srvSC.svc#3#
#4#http://test.ir:8083/srvSC.svc#4#
#5#http://test.ir:8084/srvSC.svc#5#
#6#http://test.ir:8085/srvSC.svc#6#

我想选择所有#1# #2# ...,所以为了写这个表达式:^(^\#.\#),但是它只选择了第一行。我如何选择第一个#.#和最后一个{{1 }}?

1 个答案:

答案 0 :(得分:3)

您可以使用

^(#\d+#)(.+)\1$

这将捕获组中的前#个,重复任何字符,然后匹配与第一个组中匹配的相同字符。您想要的字符串将在第二个捕获的组中。

https://regex101.com/r/7Er0Ch/5