저는 Excel을 사용하여 하이퍼링크된 셀 열이 포함된 테이블을 만듭니다. 이제 이 데이터를 Wiki-table 형식으로 변환하고 싶습니다. tab2wiki를 사용하는 경우(https://magnustools.toolforge.org/tab2wiki.php), 하이퍼링크가 손실됩니다. 변환 시 하이퍼링크를 전달하는 데 사용할 수 있는 도구는 무엇입니까?
답변1
Wiki 코드에서 테이블이 어떻게 보이는지 알면 Excel 자체에서 거의 전체 테이블 소스 코드를 만들 수 있습니다. 위키 소스 코드에 추가할 테이블의 시작과 끝입니다. 예를 들어 하이퍼링크를 만드는 것은 A1 = [[
, B1 = 과 같습니다 .대상 기사 이름, C1 = ]]
, D1 = = A1&B1&C1
.
답변2
궁극적으로 가장 좋은 조치는 tab2wiki
링크 처리 지원(소스 코드)으로 도구를 확장하는 것입니다.여기), 특히 지난 몇 년 동안 일반 TLD가 폭발적으로 증가한 것을 고려하면 더욱 그렇습니다. 문제를 처리하기 위해 특별히 제작된 코드를 작성하는 것보다 더 나은 것은 없습니다. 이는 이 제한된 솔루션(아래 자세히 설명)이 처리할 수 있는 것보다 더 복잡합니다.
즉, 나는 정규식과 Perl을 사용하여 무언가를 해킹할 수 있었습니다.~할 것 같다최소한 Linux에 액세스할 수 있거나 이 접근 방식을 다른 환경에 적용할 수 있는 경우 조건에 따라 필요한 작업을 수행하십시오. 나는 믿는다메모장++는 Windows에서 사용할 수 있으며 찾기-바꾸기 도구에서 정규식을 지원하며 이 접근 방식을 적용하여 아래 정규식과 함께 해당 인터페이스를 사용할 수 있습니다(즉, 의 출력을 tab2wiki
notepad++에 붙여넣은 다음 찾기-바꾸기에서 정규식을 사용할 수 있습니다). ).
먼저 다음과 같은 입력이 제공됩니다 tab2wiki
.
lol wut noway asdf
1 no way https://www.google.com so cool https://test.net qwer zxcv
2 http://kagi.org sd
3 fd d https://netflix.org
4 fdasf f http://www.apple.org
붙여넣으면 tab2wiki
다음 텍스트가 생성됩니다.
{| border="1" class="sortable"
!lol!!wut!!noway!!asdf
|-
|1||no way https://www.google.com so cool https://test.net||qwer||zxcv
|-
|2||||http://kagi.org||sd
|-
|3||fd||d||https://netflix.org
|-
|4||fdasf||f||http://www.apple.org
|}
이 예에는 여러 링크가 있는 셀뿐만 아니라 맨 끝에 링크가 있는 종료 셀과 빈 셀도 포함됩니다.
이 파일을 어딘가에 저장한 후 의 정규식 엔진 /tmp/testwikifile
으로 다음 명령을 수행하면 각 링크를 따라 이동 하여 고정됩니다.perl
[
]
cat /tmp/testtable3 | perl -p -e 's/(http.*?)\.(com|org|net)/\[\1.\2\]/gm'
출력:
{| border="1" class="sortable"
!lol!!wut!!noway!!asdf
|-
|1||no way [https://www.google.com] so cool [https://test.net]||qwer||zxcv
|-
|2||||[http://kagi.org]||sd
|-
|3||fd||d||[https://netflix.org]
|-
|4||fdasf||f||[http://www.apple.org]
|}
제한사항:
- 링크는
http
최소한 다음 으로 시작해야 합니다. - 링크에 대한 최상위 도메인(TLD) 목록을 알아야 합니다.
정규식 세부정보:
이 정규식은 's/(http.*?)\.(com|org|net)/\[\1.\2\]/g'
다음과 같이 분류될 수 있습니다.
- 입력 문자열을 새 문자열 a la 로 대체
s/start/replacement/
하고 전역 적으로 수행합니다g
(일치하는 항목 모두 찾기). http
그 밖의 다른 것을 검색.*
하고 수행하십시오.게으르게?
. 그런 다음 마침표를 찾은 다음 , 또는 via 중 하나 를\.
찾습니다 . 그러면 대체에 사용할 수 있는 두 개의 캡처 그룹이 설정됩니다.com
org
net
(com|org|net)
- 대체는
\[\1.\2\]
, 에서 마침표까지\1
의 모든 항목이고 , , 또는 중 하나입니다 . 따라서 " 링크를 다시 만들기 위해 두 일치 항목 사이에 마침표를 넣고 링크를 여는 괄호 와 닫는 괄호로 채웁니다."http
\2
com
org
net
.
[
]