У меня есть список строк, и нужно найти все, что следовать этой логикеКак извлечь из элементов списка 2digits "." 2digits только в Iron Python?
twodigits.twodigits
Example| Correct?
----------- | ------
03.38 | Yes
10.59 | Yes
10.23 m3/h | No
50.8 mm | No
Я пытался только искать «» но не сработало ...
for i in elements:
id = i.Id
if i.Text[2:3] == '.':
i.Text= ''
atext1.append(i.Text)
Я нашел это, но не уверен, как его использовать в моем коде?
str_extract_all(text, "\\d{2}.\\d{2}") %>%
Мой текущий код из ответов:
for i in elements:
id = i.Id
match = search('\d{2}\.\d{2}$',i.strip())
if match:
atext1.append(match.string)
i.Text= ''
#atext1.append(i.Text)
else:
atext2.append(i.Text)
atext.append(i.Text)
еще одну попытку, но до сих пор не работает
for i in elements:
id = i.Id
k = i.Text
atext3.append(k)
match=search('\d{2}\.\d{2}$',k.strip())
if match: atext4.append(match.string)
i.Text= ''
это один так же не увенчались успехом
for i in elements:
id = i.Id
k = i.Text
atext3.append(k)
if k.split('.')[0:2].isdigit():
i.Text= ''
atext3.append(i.Text)
Я получил эту работу в конце концов. Спасибо всем за помощь
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import *
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
from re import search
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
#The inputs to this node will be stored as a list in the IN variable.
#from re import search
atext3 = []
atextTrue = []
atextFalse = []
atextAll = []
#unwrap all elements to use with API
elements = []
for i in IN[0]:
elements.append(UnwrapElement(i))
TransactionManager.Instance.EnsureInTransaction(doc)
for i in elements:
atext3 = i.Text
match = search('\d{2}\.\d{2}$', atext3.strip())
if match:
i.Text = 'deletedTEXT'
atextTrue.append(i.Text)
else:
atextFalse.append(i.Text)
atextAll.append(i)
TransactionManager.Instance.TransactionTaskDone()
#Assign your output to the OUT variable
OUT = atextTrue, atextFalse, atextAll
Да, конечно, список находится на вершине вот пример [03,38, 10,59, 10,23 м3/ч, 50,8 мм, коза, VCD, 48L/s, 10,203, 02,72, 03,55. ] – Michal
в случае '10.23 m3/h' вы хотите извлечь' 10.23' или пропустить его полностью, потому что он не содержит только 'twodigits.twodigits'? – LMc
Я хочу пропустить его ... так же мне нужно вставить это в мое, если мне нужно заменить этот текст для каждого элемента в списке, а если он соответствует, замените на None, поэтому i.Text = '' эта строка следует – Michal