1
У меня есть список имен файлов, как это:Лучшего способа получить часть строки с заводной
"XX111NO_1_myText.txt"
"AABBBAAABBB_25_myHtml.html"
"VVHHY_6_myLog.log"
Я хочу, чтобы получить только определенную часть этой строки иметь:
"myText"
"myHtml"
"myLog"
Я реализовал этот код и его работы:
def fileName = "XX111NO_1_myText.txt"
fileName = fileName.substring(fileName.lastIndexOf(fileName.find(/_[1-9]+_/))+fileName.find(/_[1-9]+_/).length() , fileName.lastIndexOf("."))
assert fileName == "myText"
есть ли лучший способ выполнить эту задачу? Например, используя только регулярное выражение
Благодарности
Спасибо, я должен узнать больше о регулярном выражении. – Jils
Это в основном ищет начало строки '^', за которой следуют некоторые символы '. +', За которым следует символ подчеркивания '_', за которым следуют некоторые символы без пробелов (которые мы хотим захватить)' (\ S +) 'follow через точку '\ .', за которой следуют некоторые небелые символы' \ S + ', за которыми следует конец строки' $ ' –
Я немного изменил ваш шаблон /^.+_ [1-9] + _ (\ S +) \. \ S + $ /. , чтобы избежать соответствия имени файла: «XXX.XXXX_13.XXXX.txt» – Jils