Regex berikut memungkinkan Anda membandingkan dua proyek dengan markup nama ilahi \nd …\nd* di Paratext Find dan menggunakan Remove From List, untuk melihat di mana jumlah instans dalam sebuah ayat berbeda. Pengaturan harus tanpa batasan apa pun. Ini tidak akan berfungsi jika Match Only in Verse Text dicentang.
regex:(?<=\\v\s\S+\s)((?!\\(v|m?s|nd)).)*(\\nd [^\\]*?\\nd\*)){1,1}((?!\\(v|m?s|nd|c)).)*(?=\\(v|s|c)|\Z)
Regex ini memungkinkan Anda menemukan ayat dengan jumlah span \nd tertentu dalam teks:
- {1,1} satu dan hanya satu
- {1} tepat satu (sama seperti di atas)
- {2,} dua atau lebih
- {0,0} Tidak ada
Ini tidak menemukan markup \nd dalam judul bagian dan juga tidak akan menemukan markup \+nd
Isu
- Karena tidak menemukan markup \+nd, ini tidak akan menemukan \+nd dalam teks biasa (jarang).
- Ini tidak akan menemukan \nd dalam ayat parsial yang mengikuti judul bagian (jarang).
Regex berikut akan menemukan txt dalam span \+nd …\+nd* di teks biasa dan catatan kaki: .
regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|\+nd)).)*(\\\+?nd [^\\]*?\\\+?nd\*)){1,1}((?!\\(v|m?s|\+nd)).)*(?=\\(v|m?s)|\Z)
Isu
- Karena akan menemukan markup \+nd, ini akan menemukan \+nd dalam catatan kaki (umum).
Jika kita ingin menggunakan ini untuk membandingkan terjemahan Inggris yang menggunakan markup \nd dengan terjemahan yang menggunakan kata unik tanpa tanda untuk YHWH, kita dapat menambahkan kata tersebut ke pencarian. Untuk bahasa Prancis, kita akan mencari Eternel
regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|nd)|Eternel).)*(\\\+?nd [^\\]*?\\\+?nd\*|Eternel)){1,1}((?!\\(v|m?s|nd)|Eternel).)*(?=\\v|m?s)|\Z)
Karena Eternel juga muncul dalam catatan kaki, kita ingin melewati pencarian teks dalam catatan kaki. Skema berikut memungkinkan Anda melewati teks (seperti span catatan kaki) saat mencocokkan:
schema:(?<=<start>)(((?!<selector>).)*((<skipSpan>((?!<selector>).)*)*<requiredSpan>)){Min,Max}((?!<selector>).)*(<skipSpan>((?!<selector>).)*)*(?=<end>|\Z)
Untuk <selector> lihat: Regex Examples: Matching Whole Lines of Text That Satisfy Certain Requirements
Jika kondisi Anda adalah bahwa sebuah baris tidak boleh mengandung sesuatu, gunakan negative lookahead. ^((?!regexp).)*$ mencocokkan baris lengkap yang tidak mencocokkan regexp.
Mari kita terapkan ini untuk melewati teks dalam catatan kaki. Kita diwajibkan untuk mencocokkan span \nd dan \+nd serta Eternel:
<start> \\v\s\S+\s ; Start at verse
<end> \\(v|m?s) ; End at verse or section heading
<end>|\Z \\(v|m?s)|\Z ; For final context add \Z to select end of Chapter
<requiredStart> \\\+?nd|Eternel ; \nd markup optionally embedded and "Eternel"
<requiredSpan> (\\\+?nd [^\\]*?\\\+?nd\*|Eternel) ; The entire \nd phrase or "Eternel"
<skipStart> \\f\s ; Beginning of a footnote
<skipSpan> (\\f\s((?!\\f\*).)*\\f\*) ; The entire footnote
<selector> <end>|<skipStart>|<requiredStart> ; Combine all of the selection restrictions
=> \\(v|m?s)|\\f\s|\\\+?ndEternel ; which simplifies to
=> \\(v|m?s|f\s|\+?nd)|Eternel
Regex lengkap:
regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*(((\\f\s((?!\\f\*).)*\\f\*)((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*)*(\\\+?nd[^\\]*?\\\+?nd\*|Eternel))){1,1}((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*((\\f\s([^\\]|\\(?!f\*))*\\f\*)((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*)*(?=(\\(v|m?s))|\Z)