题
我有一个正则表达式,其中
%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]+)")
不隶属于 StackOverflow