我无法使用Java正则表达式解析文件名中的内容。我提供了一个GUI界面来输入模式和替换,为每个文件名命名为" level1EUR__USD@TRUEFX_2009_05_01_2016_12_30.txt"
我知道它是Java Regex,但我似乎无法做到正确。
什么是正则表达式将" EUR__USD" 替换为" EUR / USD"
输入:
" level1EUR__USD @ TRUEFX_2009_05_01_2016_12_30"吗
输出:
level1EUR / USD @ TRUEFX_2009_05_01_2016_12_30
答案 0 :(得分:4)
您可以使用
^\w*?([A-Z]{3})_+([A-Z]{3}).*
并替换为$1/$2
。
请参阅regex demo。
<强>详情:
^
- 字符串开头\w*?
- 0+字词,尽可能少([A-Z]{3})
- 第1组(在替换模式中称为$1
):3个大写ASCII字母_+
- 1个或多个_
字符([A-Z]{3})
- 第2组(在替换模式中称为$2
):3个大写ASCII字母.*
- 其余部分