0 votes

In our project’s Biblical Terms list, I’m looking for an (easier) way to filter for terms which contain “too many” different renderings.


So in the above example, I would love to be able to just enter a RegEx code which looks for a pattern - say for example 3 or more stars * in the rendering field (which in this case would filter the middle three rows - as they all have 3 or more renderings).

I tried using a RegEx in the find window by doing something like this:

However, because the renderings themselves are stored on different lines with a or \r\n between each rendering, I can’t seem to get any RegEx to correctly locate what I’m looking for.

So for example, regex:\.+?\.+?\* doesn’t find anything.
And neither does this:regex:\.+?\r\n.+?\.+?\r\n.+?\.+?\r\n.+?\

I think I need to turn on the DOTALL /s flag (or something similar), but nothing that I’ve tried works yet. Alternatively, could I search for the number of occurrences of \r\n and filter more specifically that way?

Any suggestions?

Paratext by (2.6k points)

5 Answers

0 votes
Best answer

Hi anon467281,

Thanks for your response. Yes, I realize that something like that should work, but it clearly isn’t for me (within the Biblical Terms Find tool).

I’m assuming the some of the * s in your RegEx need to be escaped, but even so, there seems to be no effect of using (?s). So Paratext must be doing something else to the RegEx (or the data) to prevent this from working right.

I can copy and paste data from the renderings area into Notepad++ and see that there is \r\n at the end of each “line” and then the RegEx works to find what I’m looking for there.

The closest I ever got to finding 2 or more * in the data (within the Biblical Terms tool) was with this one (shown below), but it only finds one occurrence (as that entry has 2 stars on the same line: bavisatna gost** is all on the same line, whereas the others are on different lines).


But the fact that it returns something from the “second line of data” shows that it is at least seeing beyond the first line of data (mune jargval*) - which is encouraging.

Can someone look into a similar project (or use my SGAlatin) project to see if they can figure out what is/isn’t happening?
Thanks,
Mark

by (2.6k points)

Paratext compares the find text to the text of each rendering (i.e. each line), not to the whole rendering textbox. Unfortunately, this means there is no way to do what you want, sorry. :neutral_face:

0 votes

Try the following and see if it works:

(?s)*.?*(.?*)+

This should find when 3 or more ** are found.

The (?s) says that the . matches line breaks (\n). By default it only
matches up thru the \r and stops at the \n.

D anon467281

Global Publishing Services
Scripture Typesetting trainer & Regular Expression "specialist"
Dallas, TX

by (571 points)
reshown
0 votes

Thanks for confirming my fear/suspicion. So should I submit this as a ‘bug to be fixed’ or a ‘feature request’? Or will it make no real difference in this case? My only work-around right now is to export the entire list to HTML>Excel and then add a column which counts the renderings (and can be sorted or filtered on). Not ideal (as it is a static/stale list) but at least I can find what I’m looking for. Roll on PT9… :wink:

by (2.6k points)
0 votes

You certainly could submit a feature request, but since it’s not the way the tool was designed to work and it seems like an unusual use-case, it would probably be considered low-priority.

by [Expert]
(16.2k points)

Just curious what makes this an
"unusual use-case"? Multiple renderings for one key term?
Because we’re definitely going to need a way to sift the list
for multiple renderings (ten-ish translators, five
denominations, four dialects–you can see the issue[s])…

    Paul
0 votes

I was meaning that it’s an unusual use-case to have the text-search match through multiple renderings.

by [Expert]
(16.2k points)

reshown
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Live in harmony with one another. Do not be proud, but be willing to associate with people of low position. Do not be conceited.
Romans 12:16
2,633 questions
5,377 answers
5,046 comments
1,420 users