<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>regex &#8211; anthro{dendum}</title>
	<atom:link href="/tag/regex/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Fri, 06 Apr 2018 02:55:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>/wp-content/uploads/2017/11/cropped-brackets-ico-file-32x32.png</url>
	<title>regex &#8211; anthro{dendum}</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Text-laundering (Working With Text 3)</title>
		<link>/2018/01/28/text-laundering-working-with-text-3/</link>
		
		<dc:creator><![CDATA[Kerim]]></dc:creator>
		<pubDate>Mon, 29 Jan 2018 03:58:08 +0000</pubDate>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Tools We Use]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[mobile apps]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[text files]]></category>
		<category><![CDATA[tools we use]]></category>
		<category><![CDATA[utilities]]></category>
		<category><![CDATA[working with text]]></category>
		<guid isPermaLink="false">https://anthrodendum.org/?p=602</guid>

					<description><![CDATA[Ever copy and paste something that should be a solid paragraph of text only to have it end up looking a mess? You could fix it using Regular Expressions, or if you prefer not to have to muddle around with code, there are a number of tools out there which can automate this kind of text cleanup for you. ]]></description>
										<content:encoded><![CDATA[<p>Ever copy and paste something that should be a solid paragraph of text, which should look like this:</p>
<blockquote><p>
  Consuetudium lectorum Mirum est notare. Eodem modo typi qui nunc nobis videntur parum clari fiant sollemnes in futurum? Assum Typi non habent claritatem insitam est usus legentis in iis. Claritatem Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius Claritas est etiam. Nam liber tempor cum soluta. Est etiam processus dynamicus qui.
</p></blockquote>
<p>only to have it end up looking like this?</p>
<blockquote><p>
  Consuetudium lectorum Mirum est notare.<br />
  Eodem modo typi qui nunc nobis videntur parum clari fiant sollemnes in futurum? Assum Typi non habent claritatem insitam est usus<br />
  legentis in iis.<br />
  Claritatem Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius Claritas est etiam. Nam liber tempor cum soluta. Est etiam<br />
  processus dynamicus qui.
</p></blockquote>
<p>Most word processors have a command that lets you see invisible markers like spaces (usually represented as a faint dot “•”) and what are still quaintly called “carriage returns,” or “line feeds” (generally shown by the symbols ”¶” or “↵”).<sup id="fnref-602-1"><a href="#fn-602-1" class="jetpack-footnote">1</a></sup> If you turn that feature on, you will see that there are way too many such return symbols in the above text. It might seem like the solution would be to find and replace all those returns with spaces, but then you would have no paragraphs at all in your document. What you want to do is replace all the mid-paragraph returns, but leave those between paragraphs.</p>
<p>Using Regular Expressions (RegEx), as <a href="https://anthrodendum.org/2018/01/24/regex-101-working-with-text-2/">discussed in the last post in this series</a>, what we would want to do is search for every return (or line feed) that is not followed or preceded by a return (or line feed). In addition&#8211;since some paragraphs are separated not by a blank line but by a tab or sequence of spaces at the start of the new paragraph&#8211;we want to look for those as well. I find <a href="https://regex101.com/r/zshq1Q/1">the following search</a> works pretty well for me: <code>(?&lt;=[^\r\n\t ][^\r\n])\R(?=[^\r\n][^\r\n\t ]) </code>  It is easy to find many patterns like this in online forums, <a href="https://stackoverflow.com/questions/10464735/remove-single-line-breaks-keep-empty-lines">as I did</a>, saving you the trouble of having to re-invent the wheel.</p>
<p>If you prefer not to have to muddle around with code, there are a number of tools out there which can automate this kind of text cleanup for you. On macOS my favorite is the package of <a href="http://www.devontechnologies.com/products/freeware.html">free WordService menu extensions</a> from DEVONtechnologies. These are extensions that work with the built-in &#8220;Services&#8221; menu that pops up on macOS whenever you control-click on some selected text. The package offers a number of useful commands to do things like change the capitalization of the selected text (e.g. turn “THE APPLE” into “The Apple,” or “The apple,” etc.), reformat line breaks (or remove them altogether), and one that can give you useful statistics such as the word or character count of the selected text, etc.</p>
<p>Considering that WordService is free and does pretty much the same thing, you might not want to spend $45 for <a href="https://www.unmarked.com/textsoap/%5C">TextSoap</a>, but if you already have a subscription to the <a href="https://setapp.com/">Setapp</a> bundle of macOS apps then TextSoap is included with your subscription. Another option is <a href="http://sociomedia.com/textwell/">Textwell</a> which works on both macOS and iOS and can do much more than just clean text. It has some built in tools, much like those offered in WordService, but (if you aren’t afraid of tweaking the JavaScript in the example code) you also can make your own actions. I really like that these can be synced between the desktop and iOS. <a href="https://www.apimac.com/ios/cleantext/">Clean Text for iOS</a> is even easier to use, but less customizable. Since I don’t use Windows, Linux, or Android, etc. I’ll leave it for others to recommend their favorite text cleanup tools for those platforms in the comments.</p>
<hr />
<h3>List of posts in this series</h3>
<ul>
<li><a href="https://anthrodendum.org/2018/01/18/free-your-mind-the-text-will-follow-working-with-text-1/">Free Your Mind, the Text Will Follow (Working With Text 1)</a></li>
<li><a href="https://anthrodendum.org/2018/01/24/regex-101-working-with-text-2/">RegEx 101 (Working With Text 2)</a></li>
<li><a href="https://anthrodendum.org/2018/01/28/text-laundering-working-with-text-3/">Text-laundering (Working With Text 3)</a></li>
<li><a href="https://anthrodendum.org/2018/02/22/lazy-powerpoint-working-with-text-4/">Lazy PowerPoint (Working With Text 4)</a></li>
<li><a href="https://anthrodendum.org/2018/04/05/roll-your-own-qda-working-with-text-5/">Roll Your Own QDA (Working With Text 5)</a></li>
</ul>
<div class="footnotes">
<hr />
<ol>
<li id="fn-602-1">
Actually, there are significant differences between carriage returns and line feeds, but they aren’t important for this post.&#160;<a href="#fnref-602-1">&#8617;</a>
</li>
</ol>
</div>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='Kerim' src='http://0.gravatar.com/avatar/3f733bd06413af380fcd122e4be08dc4?s=100&#038;d=retro&#038;r=g' srcset='http://0.gravatar.com/avatar/3f733bd06413af380fcd122e4be08dc4?s=200&#038;d=retro&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a href="/author/admin_kerim3916/" class="vcard author" rel="author"><span class="fn">Kerim</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p><a href="http://kerim.oxus.net/">P. Kerim Friedman</a> is a professor in the Department of Ethnic Relations and Cultures at National Dong Hwa University in Taiwan. His research explores language revitalization efforts among indigenous Taiwanese, looking at the relationship between language ideology, indigeneity, and political economy. An ethnographic filmmaker, he co-produced the Jean Rouch award-winning documentary, &#8216;Please Don&#8217;t Beat Me, Sir!&#8217; about a street theater troupe from one of India&#8217;s Denotified and Nomadic Tribes (DNTs).</p>
</div></div><div class="saboxplugin-web sab-web-position"><a href="http://kerim.oxus.net/" target="_self" >kerim.oxus.net/</a></div><div class="clearfix"></div><div class="saboxplugin-socials "><a title="Twitter" target="_self" href="http://twitter.com/kerim" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg></span></a></div></div></div>
<p><a href="/2018/01/28/text-laundering-working-with-text-3/" rel="nofollow">Source</a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RegEx 101 (Working With Text 2)</title>
		<link>/2018/01/24/regex-101-working-with-text-2/</link>
					<comments>/2018/01/24/regex-101-working-with-text-2/#comments</comments>
		
		<dc:creator><![CDATA[Kerim]]></dc:creator>
		<pubDate>Wed, 24 Jan 2018 11:07:44 +0000</pubDate>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search and replace]]></category>
		<category><![CDATA[working with text]]></category>
		<guid isPermaLink="false">https://anthrodendum.org/?p=533</guid>

					<description><![CDATA[Let’s say that there was a revolution in your field site and the “Feline Republic” is now the “Canine Republic.” This is an easy problem to solve. You just open up your word processor and use the find and replace command, replacing every instance of “Feline” with “Canine.” But what if the canine revolution also &#8230; <p class="read-more"><a class="readmore-btn" href="/2018/01/24/regex-101-working-with-text-2/">+<span class="screen-reader-text"> Read More RegEx 101 (Working With Text 2)</span></a></p>]]></description>
										<content:encoded><![CDATA[<p>Let’s say that there was a revolution in your field site and the “Feline Republic” is now the “Canine Republic.” This is an easy problem to solve. You just open up your word processor and use the find and replace command, replacing every instance of “Feline” with “Canine.” But what if the canine revolution also imposed new rules for personal names, reversing the order of first and last names throughout the republic? That becomes a bit more difficult. If your article includes hundreds of names, it would take at least an hour of manual labor to find and fix each name in your paper. In today’s post, I want to show you how you can save some time by using tools possibly already available in your word processor<sup id="fnref-533-1"><a href="#fn-533-1" class="jetpack-footnote">1</a></sup> to do a much more advanced search and replace operation.</p>
<p>What we will do is look for every instance in your text of two words in a row that are both capitalized and then reverse the order of those two words. While this scenario may seem somewhat far-fetched, the technique we will use to solve the problem, using Regular Expressions (RegEx), is one of the most useful things I ever learned in my life. I use RegEx several times a month to solve all kinds of problems. You may find it a little frustrating to use the first time, but once you get the hang of it, and discover some tools to help you get the code just right, it will become a regular part of your toolkit. Examples of things I use RegEx for include cleaning up extraneous line breaks in text copied from a PDF, extracting information (like email addresses) from a large text file, or combining cells imported from a database into a properly formatted document. The uses are endless, and once you know how to do it you might find yourself thinking “If I spend 10 min figuring out the correct RegEx for this I can save myself hours of work.”<sup id="fnref-533-2"><a href="#fn-533-2" class="jetpack-footnote">2</a></sup></p>
<p>Let’s start by grabbing a sample text to use for the tutorial. I’ve copied the following from the intro to the <a href="https://culanth.org/issues/189-32-4-november-2017">latest issue</a> of Cultural Anthropology, which is useful because it has a bunch of names, but also poses some unique challenges:</p>
<blockquote><p>
  The year’s final issue of Cultural Anthropology features a new contribution to our Openings and Retrospectives section, an Openings collection on “Chemo-Ethnography.” Nicholas Shapiro and Eben Kirksey make the case for a critical engagement with modern chemistry in its political, economic, and affective valences, inviting us to take “chemo” seriously as that which can both cure and poison. In her essay, Michelle Murphy evaluates technoscientific practices that have come to materialize chemical exposure, indicating how infrastructures of chemical violence are cloaked even as the violent effects of exposure invite surveillance and pathologization of those living in hostile conditions. Elizabeth Povinelli’s piece inhabits a chemical burn from the inside, meditating on intoxication and exposure; fire and fog; invisibility, velocity, and the training of neural noticings.
</p></blockquote>
<p>Since we now live in the Canine Republic, “Nicholas Shapiro” needs to be written as “Shapiro Nicholas,” but “Cultural Anthropology” should not be re-written. Also, we will run into a problem with the fact that Elizabeth Povinelli’s name is written with the possessive “’s”. Let’s take these problems one by one.</p>
<p>First, we have to find the proper names in this paragraph. To do that I will start with the simplest definition of what a proper name should look like: a word that starts with a capital letter and is followed by a number of lower case letters and then a space.  This is what that looks like in RegEx: <code>[A-Z][a-z]+\s</code> Let’s break that down:</p>
<ul>
<li><code>[A-Z]</code> looks for any capital letters</li>
<li><code>[a-z]</code> looks for any lower case letters</li>
<li><code>+</code> extends the search for lowercase letters by saying we can have one or more matching results for the previous search parameter (i.e. “a” or “aa” or “aaaaaa”)</li>
<li><code>\s</code> looks for a space</li>
</ul>
<p>This is what that gets us (click on any of the images in this post to go to the RegEx101 site where you can play around with the code to see how it changes the results):</p>
<p><a href="https://regex101.com/r/tuSGYx/2"><img fetchpriority="high" decoding="async" src="https://anthrodendum.org/wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.50.32-PM-1024x783.png" alt="Name Match" width="640" height="489" class="aligncenter size-large wp-image-534" srcset="/wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.50.32-PM-1024x783.png 1024w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.50.32-PM-300x230.png 300w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.50.32-PM-768x588.png 768w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.50.32-PM-353x270.png 353w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.50.32-PM.png 1192w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>As you can see, this search result catches too many fish in its net. We want to catch the big fish, but leave the small fish (like “The”) out. The easiest way to do this is to replicate the search so that we only find cases where two proper names appear in a row. Like this: <code>[A-Z][a-z]+\s[A-Z][a-z]+\s</code></p>
<p><a href="https://regex101.com/r/tuSGYx/3"><img decoding="async" src="https://anthrodendum.org/wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.53.20-PM-1024x790.png" alt="Two Name Match" width="640" height="494" class="aligncenter size-large wp-image-535" srcset="/wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.53.20-PM-1024x790.png 1024w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.53.20-PM-300x231.png 300w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.53.20-PM-768x592.png 768w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.53.20-PM-350x270.png 350w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.53.20-PM.png 1216w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>But now we have one catch that isn’t a fish: “Cultural Anthropology” and one fish that got away: “Elizabeth Povinelli.” We can easily tell the search to ignore names starting with “Cultural” by adding <code>(?!Cultural)</code> to the start of the search. But why didn’t Elizabeth Povinelli come through? It was excluded because of the possessive apostrophe, so we can add the apostrophe to the list of characters we search for in the second name. Now our search looks like this: <code>(?!Cultural)[A-Z][a-z]+\s[A-Z][a-z’]+\s</code></p>
<p><a href="https://regex101.com/r/tuSGYx/4"><img loading="lazy" decoding="async" src="https://anthrodendum.org/wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.54.33-PM-1024x797.png" alt="Final Search" width="640" height="498" class="aligncenter size-large wp-image-536" srcset="/wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.54.33-PM-1024x797.png 1024w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.54.33-PM-300x234.png 300w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.54.33-PM-768x598.png 768w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.54.33-PM-347x270.png 347w, /wp-content/uploads/2018/01/Screen-Shot-2018-01-24-at-3.54.33-PM.png 1200w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>So far, so good. We have caught all the fish we wanted, and only those fish. One problem with RegEx is that it is rare that you can find a search that will work for every single use case. That is why some websites might reject your email address as invalid even though it isn’t. (Actually, a good RegEx should really work with almost all email addresses, but some programmers are just lazy.) For this reason, it is good to write new search parameters for each search you do and to test them against the document you are working on before using them. RegEx is powerful, but that very power can wreak havoc on your text if you aren&#8217;t careful!</p>
<p>So far we have only solved the first part of the problem. Once we have found the proper names, we need to reverse their order. To do that we have to mark off the first word and the second word with parentheses in <a href="https://regex101.com/r/tuSGYx/5">our search</a>, as such: <code>(?!Cultural)([A-Z][a-z]+)\s([A-Z][a-z’]+)\s</code> Our search hasn’t changed, but we can now use those bracketed results in our replace command, which will look <a href="https://regex101.com/r/tuSGYx/6">like this</a>: <code>\2 \1 </code> That tells the program to write out the second search result, followed by a space and then the first search result, followed by another space. This is almost perfect, except for one small problem you may have already guessed:</p>
<blockquote><p>
  The year’s final issue of Cultural Anthropology features a new contribution to our Openings and Retrospectives section, an Openings collection on “Chemo-Ethnography.” Shapiro Nicholas and Kirksey Eben make the case for a critical engagement with modern chemistry in its political, economic, and affective valences, inviting us to take “chemo” seriously as that which can both cure and poison. In her essay, Murphy Michelle evaluates technoscientific practices that have come to materialize chemical exposure, indicating how infrastructures of chemical violence are cloaked even as the violent effects of exposure invite surveillance and pathologization of those living in hostile conditions. <code>Povinelli’s Elizabeth</code> piece inhabits a chemical burn from the inside, meditating on intoxication and exposure; fire and fog; invisibility, velocity, and the training of neural noticings.
</p></blockquote>
<p>Unfortunately, we ended up with “Povinelli’s Elizabeth” instead of “Povinelli Elizabeth’s” which is what our canine overlords wanted. Rather than changing our original search and replace to avoid this problem, it is easier to follow the first search and replace operation with another one that will clean up these mistakes. In this case the search command would <a href="https://regex101.com/r/tuSGYx/7">look like</a> <code>([A-Z][a-z]+)’s\s([A-Z][a-z]+)\s </code> and the replace command would be <code>\1 \2's </code>. At this point you should be able to understand how this works. Take a moment to see if you can understand the code before moving on.</p>
<p>Obviously, it would never make sense to write code to fix a single instance in a document, it would be easier to do it by hand, but if you had a 20-page paper to work with, not to mention a book manuscript, you might appreciate knowing how to code the solution in RegEx. True, RegEx does require learning some specialized code which is hard to remember if you aren’t a computer programmer who uses this stuff every day, but fortunately, there are lots of tools out there which can make this easier for you. The <a href="https://regex101.com/">RegEx101 website</a> linked to all of the searches in this tutorial is my favorite, but there are many other resources out there as well, not all of which require you to actually learn RegEx for yourself. In my next post, I plan to talk about some more user-friendly options, but I think it was important to first understand the underlying principles before moving on. If you don’t understand how tools like RegEx “see” text it is hard to understand what some of these other tools are doing. Hopefully, even if I haven’t convinced you to learn RegEx for yourself, you have gotten an idea of how it works and what kinds of things it can do.</p>
<hr />
<h3>List of posts in this series</h3>
<ul>
<li><a href="https://anthrodendum.org/2018/01/18/free-your-mind-the-text-will-follow-working-with-text-1/">Free Your Mind, the Text Will Follow (Working With Text 1)</a></li>
<li><a href="https://anthrodendum.org/2018/01/24/regex-101-working-with-text-2/">RegEx 101 (Working With Text 2)</a></li>
<li><a href="https://anthrodendum.org/2018/01/28/text-laundering-working-with-text-3/">Text-laundering (Working With Text 3)</a></li>
<li><a href="https://anthrodendum.org/2018/02/22/lazy-powerpoint-working-with-text-4/">Lazy PowerPoint (Working With Text 4)</a></li>
<li><a href="https://anthrodendum.org/2018/04/05/roll-your-own-qda-working-with-text-5/">Roll Your Own QDA (Working With Text 5)</a></li>
</ul>
<div class="footnotes">
<hr />
<ol>
<li id="fn-533-1">
<a href="https://support.office.com/en-us/article/find-and-replace-text-and-other-data-in-a-word-document-c6728c16-469e-43cd-afe4-7708c6c779b7">See here for instructions on using RegEx in Microsoft Word</a>.&#160;<a href="#fnref-533-1">&#8617;</a>
</li>
<li id="fn-533-2">
There are many great tutorials available online. <a href="https://regexone.com/">Here&#8217;s one</a>.&#160;<a href="#fnref-533-2">&#8617;</a>
</li>
</ol>
</div>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='Kerim' src='http://0.gravatar.com/avatar/3f733bd06413af380fcd122e4be08dc4?s=100&#038;d=retro&#038;r=g' srcset='http://0.gravatar.com/avatar/3f733bd06413af380fcd122e4be08dc4?s=200&#038;d=retro&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a href="/author/admin_kerim3916/" class="vcard author" rel="author"><span class="fn">Kerim</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p><a href="http://kerim.oxus.net/">P. Kerim Friedman</a> is a professor in the Department of Ethnic Relations and Cultures at National Dong Hwa University in Taiwan. His research explores language revitalization efforts among indigenous Taiwanese, looking at the relationship between language ideology, indigeneity, and political economy. An ethnographic filmmaker, he co-produced the Jean Rouch award-winning documentary, &#8216;Please Don&#8217;t Beat Me, Sir!&#8217; about a street theater troupe from one of India&#8217;s Denotified and Nomadic Tribes (DNTs).</p>
</div></div><div class="saboxplugin-web sab-web-position"><a href="http://kerim.oxus.net/" target="_self" >kerim.oxus.net/</a></div><div class="clearfix"></div><div class="saboxplugin-socials "><a title="Twitter" target="_self" href="http://twitter.com/kerim" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg></span></a></div></div></div>
<p><a href="/2018/01/24/regex-101-working-with-text-2/" rel="nofollow">Source</a></p>]]></content:encoded>
					
					<wfw:commentRss>/2018/01/24/regex-101-working-with-text-2/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
