1

次のように文字列を分割しようとしています。サンプル文字列は次のとおりです。

"Hello this is a string.-2.34 This is an example1 string."

「」はU+F8FFユニコード文字であり、文字列のタイプはUnicodeであることに注意してください。

文字列を次のように分割したい:

"Hello this is a string.","-2.34"," This is an example1 string."

文字列を分割する正規表現を作成しましたが、これを使用すると、必要な数値部分を取得できません。(最初の文字列で-2.34)

私のコード:

import re
import os
from django.utils.encoding import smart_str, smart_unicode

text = open(r"C:\data.txt").read()
text = text.decode('utf-8')
print(smart_str(text))

pat = re.compile(u"\uf8ff-*\d+\.*\d+")
newpart = pat.split(text)
firstpart = newpart[::1]

print ("first part of the string ----")
for f in firstpart:
f = smart_str(f)
print ("-----")
print f

4

1 に答える 1

5

-*\d+\.*\d+次の結果に保持したい場合は、括弧を付ける必要がありre.splitます。

import re
text = u"Hello this is a string.\uf8ff-2.34 This is an example1 string."
print(re.split(u'\uf8ff(-*\d+\.*\d+)', text))

収量

[u'Hello this is a string.', u'-2.34', u' This is an example1 string.']
于 2012-11-18T02:49:43.087 に答える