如何在python中使用正则表达式从字符串中获取某人的名字?

时间:2019-10-07 17:04:34

标签: python regex

string = 'company: / name: James / Street: 24 High Road /'
name = re.search('Name:(.*)/(.*)Street:)', string)
print(name)

我正在尝试使用正则表达式从上面的字符串中获取“ James”,但找不到解决方案。如何使用正则表达式解决这种情况?

2 个答案:

答案 0 :(得分:3)

将我的评论转换为答案,因为这是正确的选择。

您可以使用此正则表达式:

router.post('/', (req, res, next)=> {
        if (req.isAuthenticated()) {
            req.logOut();
            req.session.destroy();
            res.clearCookie('connect.sid');
        }
        next();
    },
    passport.authenticate('local'),
    asyncMiddleware(async(req, res, next)=>{
        return res.status(200).json({
            'message' : 'SUCCESS',
            'user_id':req.user.id,
            'first_name' : req.user.first_name,
            'last_name' : req.user.last_name,
            'username' : req.user.username,
            'user_type' : req.user.permission_id,
            'user_status_id' : req.user.user_status_id,
        });
}));

var sessionStore = new MySQLStore(options); //handles cookie/session creation app.set('trust proxy', 1); // trust first proxy app.use(session({ secret: config.sessionKey, resave: false, store:sessionStore, saveUninitialized: true, duration:365*24*60*60*1000, //1 year in milliseconds cookie: { //secure: true, maxAge:365*24*60*60*1000 //1 year in milliseconds } })); 为您的正则表达式启用忽略大小写匹配。

如果您想在比赛结束后断言>>> string = 'company: / name: James / Street: 24 High Road /' >>> print ( re.search(r'(?i)name:\s*(\w+)', string).group(1) ) James 的存在,请将该正则表达式与前瞻性断言一起使用:

(?i)

答案 1 :(得分:0)

如果命名约定一致,则可以使用.split()将其拆分为列表

stringy = 'company: / name: James / Street: 24 High Road /'

name = stringy.split('/')

编辑:这将只抓取名称为

的元素
name = [n for n in name if 'name' in n]
相关问题