Files
OBIJupyterHub/jupyterhub_volumes/web/obidoc/docs/patterns/index.xml
Eric Coissac 30b7175702 Make cleaning
2025-11-17 14:18:13 +01:00

26 lines
14 KiB
XML

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Patterns on OBITools4 documentation</title>
<link>http://metabar:8888/obidoc/docs/patterns/</link>
<description>Recent content in Patterns on OBITools4 documentation</description>
<generator>Hugo</generator>
<language>en-us</language>
<atom:link href="http://metabar:8888/obidoc/docs/patterns/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Regular Expressions</title>
<link>http://metabar:8888/obidoc/docs/patterns/regular/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://metabar:8888/obidoc/docs/patterns/regular/</guid>
<description>&lt;h1 id=&#34;regular-expressions&#34;&gt;&#xA; Regular Expressions&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#regular-expressions&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Regular expressions are a powerful tool for describing patterns in text. They are used in several &lt;abbr title=&#34;A set of unix command line tools for manipulating DNA metabarcoding data&#34;&gt;OBITools&lt;/abbr&gt;&#xA; like &lt;a href=&#34;http://metabar:8888/obidoc/obitools/obigrep/&#34;&gt;&#xA; &lt;abbr title=&#34;obigrep: filter a sequence file&#34;&gt;&lt;code&gt;obigrep&lt;/code&gt;&lt;/abbr&gt;&#xA; &lt;/a&gt;, &lt;a href=&#34;http://metabar:8888/obidoc/obitools/obiannotate/&#34;&gt;&#xA; &lt;abbr title=&#34;obiannotate: edit sequence annotations&#34;&gt;&lt;code&gt;obiannotate&lt;/code&gt;&lt;/abbr&gt;&#xA; &lt;/a&gt; or &lt;a href=&#34;http://metabar:8888/obidoc/obitools/obiscript/&#34;&gt;&#xA; &lt;abbr title=&#34;obiscript: apply a LUA script to a sequence file&#34;&gt;&lt;code&gt;obiscript&lt;/code&gt;&lt;/abbr&gt;&#xA; &lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;single-characters&#34;&gt;&#xA; Single characters&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#single-characters&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th&gt;Pattern&lt;/th&gt;&#xA; &lt;th&gt;Description&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;.&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;any character, possibly including newline (flag s=true)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[xyz]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;character class&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[^xyz]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;negated character class&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:alpha:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;ASCII character class&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:^alpha:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;negated ASCII character class&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;composites&#34;&gt;&#xA; Composites&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#composites&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th&gt;Pattern&lt;/th&gt;&#xA; &lt;th&gt;Description&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;xy&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;x followed by y&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x|y&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;x or y (prefer x)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;repetitions&#34;&gt;&#xA; Repetitions&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#repetitions&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th&gt;Pattern&lt;/th&gt;&#xA; &lt;th&gt;Description&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x*&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;zero or more x, prefer more&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x+&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;one or more x, prefer more&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x?&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;zero or one x, prefer one&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x{n,m}&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;n or n+1 or &amp;hellip; or m x, prefer more&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x{n,}&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;n or more x, prefer more&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x{n}&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;exactly n x&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x*?&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;zero or more x, prefer fewer&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x+?&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;one or more x, prefer fewer&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x??&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;zero or one x, prefer zero&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x{n,m}?&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;n or n+1 or &amp;hellip; or m x, prefer fewer&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x{n,}?&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;n or more x, prefer fewer&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;x{n}?&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;exactly n x&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;grouping&#34;&gt;&#xA; Grouping&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#grouping&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th&gt;Pattern&lt;/th&gt;&#xA; &lt;th&gt;Description&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;(re)&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;numbered capturing group (submatch)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;(?P&amp;lt;name&amp;gt;re)&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;named &amp;amp; numbered capturing group (submatch)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;(?&amp;lt;name&amp;gt;re)&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;named &amp;amp; numbered capturing group (submatch)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;(?:re)&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;non-capturing group&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;(?flags)&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;set flags within current group; non-capturing&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;(?flags:re)&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;set flags during re; non-capturing&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;character-classes&#34;&gt;&#xA; Character classes&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#character-classes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th&gt;Pattern&lt;/th&gt;&#xA; &lt;th&gt;Description&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[\d]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;digits (== \d)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[^\d]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;not digits (== \D)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[\D]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;not digits (== \D)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[^\D]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;not not digits (== \d)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:name:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;named ASCII class inside character class (== [:name:])&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[^[:name:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;named ASCII class inside negated character class (== [:^name:])&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[\p{Name}]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;named Unicode property inside character class (== \p{Name})&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[^\p{Name}]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;named Unicode property inside negated character class (== \P{Name})&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;named-character-classes&#34;&gt;&#xA; Named character classes&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#named-character-classes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th&gt;Pattern&lt;/th&gt;&#xA; &lt;th&gt;Description&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:alnum:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;alphanumeric (== &lt;code&gt;[0-9A-Za-z]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:alpha:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;alphabetic (== &lt;code&gt;[A-Za-z]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:ascii:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;ASCII (== &lt;code&gt;[\x00-\x7F]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:blank:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;blank (== &lt;code&gt;[\t ]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:cntrl:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;control (== &lt;code&gt;[\x00-\x1F\x7F]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:digit:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;digits (== &lt;code&gt;[0-9]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:graph:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;graphical (== &lt;code&gt;[!-~]&lt;/code&gt; == &lt;code&gt;[A-Za-z0-9!&amp;quot;#$%&amp;amp;&#39;()*+,\-./:;&amp;lt;=&amp;gt;?@[\\\]^_`{|}~])&lt;/code&gt;&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:lower:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;lower case (== &lt;code&gt;[a-z]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:print:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;printable (== &lt;code&gt;[ -~]&lt;/code&gt; == &lt;code&gt;[[:graph:]]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:punct:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;punctuation (== &lt;code&gt;[!-/:-@[-\`{-~]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:space:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;whitespace (== &lt;code&gt;[\t\n\v\f\r ]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:upper:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;upper case (== &lt;code&gt;[A-Z]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:word:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;word characters (== &lt;code&gt;[0-9A-Za-z_]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td&gt;&lt;code&gt;[[:xdigit:]]&lt;/code&gt;&lt;/td&gt;&#xA; &lt;td&gt;hex digit (== &lt;code&gt;[0-9A-Fa-f]&lt;/code&gt;)&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
</item>
<item>
<title>DNA Patterns</title>
<link>http://metabar:8888/obidoc/docs/patterns/dnagrep/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://metabar:8888/obidoc/docs/patterns/dnagrep/</guid>
<description>&lt;h1 id=&#34;dna-patterns&#34;&gt;&#xA; DNA Patterns&#xA; &lt;a class=&#34;anchor&#34; href=&#34;#dna-patterns&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;DNA patterns are useful for describing short DNA sequences like oligonucleotides. They are used by several &lt;abbr title=&#34;A set of unix command line tools for manipulating DNA metabarcoding data&#34;&gt;OBITools&lt;/abbr&gt;&#xA; like &lt;a href=&#34;http://metabar:8888/obidoc/obitools/obimultiplex/&#34;&gt;&#xA; &lt;abbr title=&#34;obimultiplex: &#34;&gt;&lt;code&gt;obimultiplex&lt;/code&gt;&lt;/abbr&gt;&#xA; &lt;/a&gt;, &lt;a href=&#34;http://metabar:8888/obidoc/obitools/obipcr/&#34;&gt;&#xA; &lt;abbr title=&#34;obipcr: the electronic PCR tool&#34;&gt;&lt;code&gt;obipcr&lt;/code&gt;&lt;/abbr&gt;&#xA; &lt;/a&gt; or &lt;a href=&#34;http://metabar:8888/obidoc/obitools/obigrep/&#34;&gt;&#xA; &lt;abbr title=&#34;obigrep: filter a sequence file&#34;&gt;&lt;code&gt;obigrep&lt;/code&gt;&lt;/abbr&gt;&#xA; &lt;/a&gt;. The advantage of using DNA patterns over classical regular expressions is that they can be matched with errors. Allowed errors can be simple mismatches, or mismatches and insertions/deletions.&lt;/p&gt;</description>
</item>
</channel>
</rss>