我想使用Regex拆分字符串,我想在java中使用该正则表达式。下面的正则表达式部分工作,但它不包括花括号。
String to Split: /opt/app/{YYYY}/{MM}/{DD}/{/Xpath/sub/tree}/Archive
RegEx: {(.*?)}
Expected Output:
/opt/app/
{YYYY}
{MM}
{DD}
{/Xpath/sub/tree}
/Archive
这里的想法是我想在{}之间替换数据并重新构造字符串。我也对任何其他建议持开放态度。
答案 0 :(得分:-1)
您可以使用此正则表达式进行拆分:
/(?=\{)|(?<=})/
在Java中:
String[] arr = input.split("/(?=\\{)|(?<=})/");
RegEx分手:
/
- 匹配文字/
(?=\{)
- 预见下一个字符为{|
- 或(?<=})
- Lookbehind断言前一个字符是} /
- 匹配文字/