<commit_before># regeXML
A Python library to support parsing regeXML expressions.

Tired of trying to wrap your tiny brain around difficult-to-understand regular expressions like `<[a-z]+>.*</[a-z]+>`?

What if you had a human-readable method of expressing your regular expression?
```
<?xml version="1.0"?>
<expression type=regular" dialect="posix" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="regexml.xsd">
 <character encoding="utf-8" locale="en-US"><![CDATA[<]]></character>
 <repeat type="oneormore">
  <characterset>
   <startingcharacter encoding="utf-8" locale="en-US">a</startingcharacter>
   <endingcharacter encoding="utf-8" locale="en-US">a</endingcharacter>
  </characterset>
 </repeat>
 <character encoding="utf-8" locale="en-US"><![CDATA[>]]></character>
 <repeat type="zeroormore">
  <wildcard></wildcard>
 </repeat>
 <character encoding="utf-8" locale="en-US"><![CDATA[<]]></character>
 <character encoding="utf-8" locale="en-US">/</character>
 <repeat type="oneormore">
  <characterset>
   <startingcharacter encoding="utf-8" locale="en-US">a</startingcharacter>
   <endingcharacter encoding="utf-8" locale="en-US">a</endingcharacter>
  </characterset>
 </repeat>
 <character encoding="utf-8" locale="en-US"><![CDATA[>]]></character>
```

Obviously, this example is much easier to read in regeXML format. It has the following additional benefits:
* Easier for a computer to read, parse, serialize and transmit.
* Is more extensible than standard regex syntax.<commit_msg>Fix typo<commit_after># regeXML
A Python library to support parsing regeXML expressions.

Tired of trying to wrap your tiny brain around difficult-to-understand regular expressions like `<[a-z]+>.*</[a-z]+>`?

What if you had a human-readable method of expressing your regular expression?
```
<?xml version="1.0"?>
<expression type=regular" dialect="posix" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="regexml.xsd">
 <character encoding="utf-8" locale="en-US"><![CDATA[<]]></character>
 <repeat type="oneormore">
  <characterset>
   <startingcharacter encoding="utf-8" locale="en-US">a</startingcharacter>
   <endingcharacter encoding="utf-8" locale="en-US">z</endingcharacter>
  </characterset>
 </repeat>
 <character encoding="utf-8" locale="en-US"><![CDATA[>]]></character>
 <repeat type="zeroormore">
  <wildcard></wildcard>
 </repeat>
 <character encoding="utf-8" locale="en-US"><![CDATA[<]]></character>
 <character encoding="utf-8" locale="en-US">/</character>
 <repeat type="oneormore">
  <characterset>
   <startingcharacter encoding="utf-8" locale="en-US">a</startingcharacter>
   <endingcharacter encoding="utf-8" locale="en-US">z</endingcharacter>
  </characterset>
 </repeat>
 <character encoding="utf-8" locale="en-US"><![CDATA[>]]></character>
```

Obviously, this example is much easier to read in regeXML format. It has the following additional benefits:
* Easier for a computer to read, parse, serialize and transmit.
* Is more extensible than standard regex syntax.
{'fraction_non_alphanumeric': 0.17217675941080196, 'fraction_numerical': 0.010474631751227497, 'mean_word_length': 6.173708920187793, 'pattern_counts': {'":': 0, '<': 83, '<?xml version=': 2, '>': 83, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2668037', 'n_tokens_mistral': 984, 'n_tokens_neox': 941, 'n_words': 236}