在研究解决方案时,我很难尝试正确地表达这个问题,所以我想在这里问。我正在尝试验证用户界面中用户将以“ Java-package”格式字符串输入的字段。因此,正确的示例将是“ com.my.app.class1”。但是,它必须是完整的软件包路径,因此我不想在字符串中接受“ *”。我正在尝试找到一种在正则表达式中表示此内容的方法以对其进行验证。我的第一个想法是使用best_scores = df.groupby('id')['score'].max().reset_index()[['id', 'score']]
goal_df = (pd.merge(df, best_scores, on=['id', 'score'])
.groupby(['id'])
.first()
.reset_index())
作为分隔符(.
)将字符串拆分为多个片段,然后遍历数组并检查正确的正则表达式。但是,我想知道是否可以用一个正则表达式来完成全部操作。
答案 0 :(得分:2)
只要包含字母,数字或_,只要^\w+(\.\w+)*$
这样简单的操作就能验证您所描述类型的字符串。
它匹配所有:
class1
com.my.class1
com.my.app.class1
com.my.app.sub.class1
并且不匹配:
com.my.app.*