User Tools

Site Tools


regular_expressions

This is an old revision of the document!


Regular Expressions

Using regular expressions will help you do some advanced querying and data manipulation. I've mostly used them in PostgreSQL.

I don't have any examples of code, but I have an uncompleted Javascript project where I use them a lot.

Here's some code that is a regular expression that will do forward and reverse lookups for “Book Chapter Verse(s)” ranges. This is Javascript here, but the patterns themselves won't change.

var p_book_titles = "Genesis|Exodus|Leviticus|Numbers|Deuteronomy|Joshua|Judges|Ruth|1 Samuel|2 Samuel|1 Kings|2 Kings|1 Chronicles|2 Chronicles|Ezra|Nehemiah|Esther|Job|Psalms|Proverbs|Ecclesiastes|Solomon's Song|Isaiah|Jeremiah|Lamentations|Ezekiel|Daniel|Hosea|Joel|Amos|Obadiah|Jonah|Micah|Nahum|Habakkuk|Zephaniah|Haggai|Zechariah|Malachi|Matthew|Mark|Luke|John|Acts|Romans|1 Corinthians|2 Corinthians|Galatians|Ephesians|Philippians|Colossians|1 Thessalonians|2 Thessalonians|1 Timothy|2 Timothy|Titus|Philemon|Hebrews|James|1 Peter|2 Peter|1 John|2 John|3 John|Jude|Revelation|1 Nephi|2 Nephi|Jacob|Enos|Jarom|Omni|Words of Mormon|Mosiah|Alma|Helaman|3 Nephi|4 Nephi|Mormon|Ether|Moroni|Doctrine and Covenants|Moses|Abraham|Joseph Smith--Matthew|Joseph Smith--History|Articles of Faith";

var p_book_short_titles = "Gen.|Ex.|Lev.|Num.|Deut.|Josh.|Judg.|Ruth|1 Sam.|2 Sam.|1 Kgs.|2 Kgs.|1 Chr.|2 Chr.|Ezra|Neh.|Esth.|Job|Ps.|Prov.|Eccl.|Song.|Isa.|Jer.|Lam.|Ezek.|Dan.|Hosea|Joel|Amos|Obad.|Jonah|Micah|Nahum|Hab.|Zeph.|Hag.|Zech.|Mal.|Matt.|Mark|Luke|John|Acts|Rom.|1 Cor.|2 Cor.|Gal.|Eph.|Philip.|Col.|1 Thes.|2 Thes.|1 Tim.|2 Tim.|Titus|Philem.|Heb.|James|1 Pet.|2 Pet.|1 Jn.|2 Jn.|3 Jn.|Jude|Rev.|1 Ne.|2 Ne.|Jacob|Enos|Jarom|Omni|W of M|Mosiah|Alma|Hel.|3 Ne.|4 Ne.|Morm.|Ether|Moro.|D&C|Moses|Abr.|JS-M|JS-H|A of F";

// Find all the range strings
var pattern = "";

// pattern = pattern + "(Genesis|Leviticus) *";
pattern = pattern + "(" + p_book_titles + "|" + p_book_short_titles + ") *";

// Match Book c:v which is *always* the initial string
var chapter_verse = "(\\d+:\\d+)";
pattern = pattern + chapter_verse;

// Match possible Book c:v-v, c:v-v,v, c:v,v-v,v
var following_verses = "(((( ?- ?|, ?)?\\d+)*(?!:))*)?";
pattern = pattern + following_verses;

// Start all over again
pattern = pattern + "(( ?(-|,|;) ?)?";
pattern = pattern + chapter_verse + following_verses + ")*";

var re = new RegExp(pattern, 'g');
regular_expressions.1553466285.txt.gz · Last modified: 2019/03/24 16:24 by steve