【发布时间】:2017-07-26 15:58:54
【问题描述】:
我正在尝试创建一个正则表达式模式(一个或多个)。例如有SomeCamelStringToCombine 它应该匹配以下子字符串:
Some, Camel, String, To, Combine, SomeCamel, SomeCamelString,SomeCamelStringTo, SomeCamelStringToCombine, CamelString, CamelStringTo, CamelStringToCombine, StringTo, StringToCombine, ToCombine.
我设法创建了这个模式:/(?=([\p{Lu}]+[\p{L}]+))/,但它匹配
SomeCamelStringToCombine, CamelStringToCombine, StringToCombine,
ToCombine, Combine.
我不知道我应该修改它还是创建额外的模式。问题是我不知道怎么做。我正在使用 Java 进行匹配。
我可以向您寻求帮助或提示吗?
【问题讨论】:
-
@Arpit:我不这么认为,请仔细阅读问题。
-
我会在这里冒昧地说你不能用 just 一个正则表达式来做到这一点。但是一个正则表达式识别与循环组合以(重新)创建组合的片段应该足够简单。
-
@T.J.Crowder 为不正确的评论道歉。我支持你,正则表达式不是这样做的方式。也许拆分字符串并与字符串数组匹配。
-
这在正则表达式中会很昂贵,我保证你想出的任何正则表达式都会在某种程度上是错误的。最好只创建字符串中大写字母的索引列表,在列表上进行嵌套循环,然后从中获取所有有效的子字符串。做起来容易得多,犯错的工作也少得多。
标签: java regex pattern-matching camelcasing