擅长:python、mysql、java
<p>是的,有一种方法,你已经标记了它:“regex”(正则表达式)。在Python中,可以使用<a href="https://docs.python.org/2/library/re.html" rel="nofollow">re</a>模块或<a href="https://pypi.python.org/pypi/regex" rel="nofollow">regex</a>模块。在</p>
<p>首先,您必须创建模式,在您的情况下:</p>
<pre><code>import re
number = str(<what_you_want_to_search>) #for example 1,000.00 or 100.00
pat = r'(\d,)?\d{3}\.\d{2}' #pattern for xxx.xx and x,xxx.xx numbers
result = re.search(pat, number)
if result:
print result.string
</code></pre>
<p>在搜索如果表达式不匹配,则返回None;如果存在匹配,则返回对象。然后可以打印出与模式匹配的字符串。在</p>
<p>我强烈建议您阅读该包的文档,以确切了解如何创建自己的regex。在</p>
<p>编辑:</p>
<p>就像你说的,r'\d+模式。?\d+,?\d+'正在工作,但与xx、xx也匹配。你必须更加具体:</p>
<p>pat=r'(\d,)?\d{3}.\d{2}'</p>
<p>这个模式匹配</p>
<ol>
<li>第一个数字后以逗号开头的数字,但可以选择
因为?符号。i、 e:x,。。。在</li>
<li>那么只有3个数字和一个十进制符号(.)</li>
<li>最后但并非最不重要,正好是2个数字。在</li>
</ol>
<p>所以这个图案和x吻合,xxx.xx号或者xxx.xx号你一开始想表达什么。在</p>
<p>如果你想与欧元符号(€)匹配,你就必须<a href="http://www.fileformat.info/info/unicode/category/Sc/list.htm" rel="nofollow">add</a>手动将Sc中的字符转换为你的模式。在</p>