正则表达式:在搜索中包含特定表达式

时间:2018-04-12 03:56:05

标签: regex

我有以下字符串:

CHECKING % x j1 (test1^3) @ phi=0 j2 (test2/3) @ phi=1 j3 @ phi=2 j1 (test1^3) @ phi=2 j2 (test2/3) @ phi=3 j3 @ phi=5
CHECKING % x ab (test1^3) @ phi=0 cde (test2/3) @ phi=1 fg @ phi=2 hij (test1^3) @ phi=2 kl (test2/3) @ phi=3 mn @ phi=5

我想获得所有j1j2j3以及abcde ...所以一切都在前面括号或@符号分别,但不知怎的,我不能使它工作。有人对正则表达式有所了解吗?

以下是我的尝试:

([a-zA-Z_]+[0-9]{0,4})\s+\(.{0,9}\)\s+\@

给出:

j1 j2 j1 j2 ... ab cde hij kl

但它与j3fgmn不匹配,如果出现,我怎么才能包含(...)字词?

2 个答案:

答案 0 :(得分:1)

在您的原始图案的基础上,您可以选择括号中的部分来捕捉没有公式的情况:

([a-zA-Z_]+[0-9]{0,4})\s+(?:\(.{0,9}\))?\s*\@

Demo

答案 1 :(得分:0)

另一种选择是:

\w+(?= \()|\w+(?= @)

这会查找后跟\s@或后跟 import pandas as pd import numpy as np import dask.dataframe as dd import time pool=mp.Pool(processes=4) start=time.time() SData = dd.read_csv("KD_111.csv") TData = dd.read_csv("KD_111_T.csv") SData["Unique"] = SData["OrderDate"]+ SData["Region"] + (SData["Rep"]) + SData["Item"] TData["Unique"] = TData["OrderDate"]+ TData["Region"] + TData["Rep"] + TData["Item"] SData=SData.set_index("Unique") TData=TData.set_index("Unique") #Data1=SData.groupby(SData.index) #Data2=TData.groupby(TData.index) Data=dd.merge(SData,TData,left_index=True,right_index=True) #print(Data.columns) Data1=Data.loc[:,:"Total_x"] Data2=Data.loc[:,"OrderDate_y":] print(Data1.compute()) 的字词。

相关问题