我有一个正则表达式,其中

%word% can occur multiple times, separated by a "<"

%字%定义为".*?"|[a-zA-Z]+ 所以我写

(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*

是否有任何办法可以使用捕获组收缩呢?

(".*"|[a-zA-Z]+)([<]\1)*, 

但我不认为\1可以使用,因为它会意味着重复第一次的拍摄,因为我不知道什么被抓,因为它可以是一个带引号的字符串或一个字。

类似任何事物我可以使用来指代先前写入的组匹配。我工作在C#。

有帮助吗?

解决方案 2

作为支撑现在还没有为特征,我犯了一个字符串替换器,其中i写我需要更换通过使用正则表达式%%,然后编写的程序由用于定义的正则表达式来替换它的特定的词文本。

其他提示

使用的String.Format以避免重复和没有没有办法从字面上重复正则表达式组

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top