как разделить начальный текст и конечный текст с помощью подстроки в сценарии java? - PullRequest
1 голос
/ 16 июня 2020

У меня есть строки с текстом в начале и в конце, но между ними есть изображение sr c

Это различные типы строк, приведенные ниже

SERVER_UPLOAD_FILE_PATH____::ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png____SERVER_UPLOAD_END Execuse Me

this was the url SERVER_UPLOAD_FILE_PATH____::5e2650c2-728c-40af-99a4-eb100c432091.png____SERVER_UPLOAD_END click here to view details

SERVER_UPLOAD_FILE_PATH____::ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png____SERVER_UPLOAD_END

SERVER_UPLOAD_FILE_PATH____::68d37b07-d694-47af-a16a-8adbe400ac67.png____SERVER_UPLOAD_END Hector where are you Hello world how are you

Я пробовал этот код

var element = result.find(a =>a.includes("____SERVER_UPLOAD_END"));
var res = element.substring(element.lastIndexOf(":") + 1,element.lastIndexOf("____SERVER_UPLOAD_END"));
console.log(res)

, но он дает следующий результат

ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png
5e2650c2-728c-40af-99a4-eb100c432091.png
ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png
68d37b07-d694-47af-a16a-8adbe400ac67.png

Ожидаемый результат:

ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png Excuse ME
this wa the url 5e2650c2-728c-40af-99a4-eb100c432091.png click here to view details
ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png
68d37b07-d694-47af-a16a-8adbe400ac67.png Hector where are you Hello world how are you

как получить также текст, который приходит в начале и в конце пути img, а также между путями img?

Любая помощь будет принята с благодарностью в Advance

Ответы [ 3 ]

0 голосов
/ 17 июня 2020

Вот так:

const str = `SERVER_UPLOAD_FILE_PATH____::ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png____SERVER_UPLOAD_END Execuse Me
this was the url SERVER_UPLOAD_FILE_PATH____::5e2650c2-728c-40af-99a4-eb100c432091.png____SERVER_UPLOAD_END click here to view details
SERVER_UPLOAD_FILE_PATH____::ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png____SERVER_UPLOAD_END
SERVER_UPLOAD_FILE_PATH____::68d37b07-d694-47af-a16a-8adbe400ac67.png____SERVER_UPLOAD_END Hector where are you Hello world how are you`

const texts = str.split("\n")
  .map(line => line
       .replace("SERVER_UPLOAD_FILE_PATH____::",`<img src="https://www.web.com/`)
       .replace("____SERVER_UPLOAD_END",'" alt="image"/>'))

console.log(texts)

можно использовать регулярное выражение, но указанную выше замену легче читать, потому что вы фактически просто удаляете индикаторы пути к файлу

const str = `SERVER_UPLOAD_FILE_PATH____::ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png____SERVER_UPLOAD_END Execuse Me
this was the url SERVER_UPLOAD_FILE_PATH____::5e2650c2-728c-40af-99a4-eb100c432091.png____SERVER_UPLOAD_END click here to view details
SERVER_UPLOAD_FILE_PATH____::ad4d7360-9c6c-44fa-bcbb-0db7e671e036.png____SERVER_UPLOAD_END
SERVER_UPLOAD_FILE_PATH____::68d37b07-d694-47af-a16a-8adbe400ac67.png____SERVER_UPLOAD_END Hector where are you Hello world how are you`

const texts = str.split("\n")
  .map(line => {
    [, text1, url, text2] = line.match(/(.*?)?(?:SERVER_UPLOAD_FILE_PATH____::)(.*?)(?:____SERVER_UPLOAD_END)(.*)?/);
    return `${text1 || ""}<img src="https://www.web.com/${url}" alt="image" />${text2 ||""}`
  })

console.log(texts)
0 голосов
/ 17 июня 2020

Используя регулярное выражение и группы, разделенные (), вы можете получить доступ к различным частям строки более элегантно. Таким образом:

regex=/(.*)SERVER_UPLOAD_FILE_PATH____::([^_]*)____SERVER_UPLOAD_END(.*)/
var result = regex.exec(a)
// result[0] contains all matched string 
// result[1] contains all before SERVER_UPLOAD
// result[2] contains the name of the file
// result[3] contains all after UPLOAD_END 

0 голосов
/ 16 июня 2020

Если url is SERVER_UPLOAD_FILE_PATH____::5e2650c2-728c-40af-99a4eb100c432091.png____SERVER_UPLOAD_END click here - это все строковое значение, я бы попробовал следующее:

var element = "url is SERVER_UPLOAD_FILE_PATH____::5e2650c2-728c-40af-99a4eb100c432091.png____SERVER_UPLOAD_END click here";
var result = element.substring(
  element.lastIndexOf(":") + 1,
  element.lastIndexOf("____SERVER_UPLOAD_END click here")
);

console.log(result);

Результат будет 5e2650c2-728c-40af-99a4eb100c432091.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...