【发布时间】:2020-06-04 11:33:03
【问题描述】:
我遇到了一个正则表达式的问题,它必须捕获已经捕获的子字符串...
我有这个正则表达式:
(?<domain>\w+\.\w+)($|\/|\.)
我想递归地捕获每个子域。例如,在这个字符串中:
test1.test2.abc.def
此表达式捕获 test1.test2 和 abc.def 但我需要捕获:
test1.test2
test2.abc
abc.def
您知道是否有任何选项可以递归地执行此操作吗?
谢谢!
【问题讨论】:
-
您使用的是什么正则表达式风格?有些支持递归匹配。
-
所以你是说正则表达式可能首先匹配不属于该文本的文本@Schwern?
-
请注意,域名包括
-,不包括_。[a-zA-Z0-9-]是一个更好的近似值。请参阅此答案以获取正确的正则表达式。 stackoverflow.com/questions/60269926/… -
@Themelis 我在想
(?R)可能有用。不知道你指的是什么。 -
(?=(?<!\w)(\w+\.\w+)(?!\w))
标签: regex regex-group capturing-group