저는 꽤 긴 문자열을 가지고 있습니다. 문자열을 데이터 바인딩하기 전에 더 많은 텍스트를 삽입하여 문자열을 수정할 수 있어야합니다. 예를 들어, 문자열이 있습니다. <a href="https://stackoverflow.com/a/info/a.html"><img src="/userimage/imgs.jpg"/></a>
http://m.mydom.com을/a 앞에 삽입하고/userimage를 삽입해야합니다. 참고로, 이것은 항상 동일하므로 추가하고자하는 문자열이 일관성이 있다고 말할 수 있습니다. 나는 lamda 또는 C#으로 이것을하고 싶다. 어떤 도움을 주셔서 감사합니다.C# 문자열 중간에 문자열 삽입
1
A
답변
8
페이지의 모든 상대 경로에 대해이 작업을 수행해야하는 경우 C#을 사용하여이를 수행하는 것이 실제로 가장 좋은 도구는 아닙니다.
HTML에는 base
(see spec information)이라는 요소가 있으며이 요소는 문서의 기본 URI를 명시 적으로 지정하는 데 사용됩니다. HTML을 다음과 같이 변경 한 경우 :
<head>
<base href="http://m.mydom.com">
</head>
<body>
<a href="https://stackoverflow.com/a/info/a.html"><img src="/userimage/imgs.jpg"/></a>
</body>
이미지와 앵커 모두 올바른 기준점을 가리 킵니다. 날 믿지 않니? 이 jsFiddle demonstating the amazingness of base
을 확인하십시오.
+1
+1 멋진 팁 :) –
1
당신은 단지 String.Replace을 사용합니까?
var s = "<a href=\"https://stackoverflow.com/a/info/a.html\"><img src=\"/userimage/imgs.jpg\"/></a>";
s.Replace("\"/a","\"http://m.mydom.com/a").Replace("\"/userimage", "\"http://m.mydom.com/userimage");
가장 좋은 방법은 아니지만 항상 RegEx를 사용할 수 있습니다.
1
당신은 간단한 정규 표현식을 사용할 수 있습니다
var regex = new Regex("(?<=(src|href)=\")([^\"]*)");
var s = "<a href=\"https://stackoverflow.com/a/info/a.html\"><img src=\"/userimage/imgs.jpg\"/></a>";
Console.WriteLine(regex.Replace(s, "http://m.mydom.com$0"));
(?<=...)
는 lookbehind이다; $0
은 캡쳐 그룹 0
의 내용으로 대체하기 전에 링크의 내용입니다.
관련 문제
- 1. HTML 문자열 중간에 텍스트 삽입
- 2. 벡터 문자열 문자가 문자열 중간에 바뀝니다. C++
- 3. 삽입 문자열 - 목적 C
- 4. 문자열 중간에 문자 추가
- 5. 위치에 문자열 삽입 목표 C
- 6. DataGridView (C#) 중간에 행 삽입
- 7. 문자열 배열 삽입 문제
- 8. C++에서 AVL 트리에 문자열 삽입?
- 9. 창문에 문자열 자동 삽입
- 10. Mysql - 공백으로 문자열 삽입
- 11. 파이썬 문자열 삽입
- 12. Word 문서에 문자열 삽입
- 13. 문자열 AS3에 삽입
- 14. 아포스트로피가있는 문자열 값 삽입
- 15. PreparedStatement에 문자열 삽입
- 16. 컴파일시에 문자열 삽입
- 17. 구두점 앞에 문자열 삽입
- 18. 중복 리터럴을 통합 할 때 C 컴파일러가 문자열 중간에 표시됩니까?
- 19. 문자열 중간에 R 변수를 인쇄하는 방법
- 20. 메서드 내에서 문자열 중간에 내용 추가
- 21. C# 문자열 연결 및 문자열 intern
- 22. 페이지의 이미지 뒤에 문자열 삽입
- 23. C# - 문자열 문제 내 문자열?
- 24. C# 문자열 [] jquery 문자열 목록에?
- 25. 배열에 문자열 삽입 및 제거
- 26. C 문자열
- 27. C - 문자열
- 28. C# 문자열 조작 문제
- 29. : 문자열 문자열
- 30. C#을 문자열 삽입은
현재 사용자는 http://m.mydom.com에 있지 않습니까? – scottheckel
데이터 바인딩, 어떻게? – Nalaka526