sqlite 正则表达式:return 如何从列中的值计数 'X'
sqlite regex: How return count of 'X' from values in column
我正在使用 pandasql 来转换数据。在查询中,我想提取例如电子邮件地址中的句点数 ('.')。 SQLite 似乎不支持正则表达式。
在 SQL 我可以写:
length(regexp_replace(email, '[^.]', '', 'g')) as email_period
*#applying this to the email (my.first_name@abc.com) would return 2*
期待您提供有关 SQLite 解决方案的专业知识。提前谢谢你。
您可以使用简单的 REPLACE
和 LENGTH
来计算周期数:
CREATE TABLE tab(email VARCHAR(100));
INSERT INTO tab(email)
VALUES ('my.first_name@abc.com'),('my.first.name@abc.com.ru');
SELECT email, LENGTH(email) - LENGTH(REPLACE(email, '.', '')) AS email_period
FROM tab;
编辑:
数数:
SELECT email,
LENGTH(email) -
LENGTH(REPLACE( REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(email, '0', '')
,'1', ''),'2', ''),'3', ''),'4', '')
,'5', ''),'6', ''),'7', ''),'8', '')
,'9', '')) AS email_digits
FROM tab
我正在使用 pandasql 来转换数据。在查询中,我想提取例如电子邮件地址中的句点数 ('.')。 SQLite 似乎不支持正则表达式。
在 SQL 我可以写:
length(regexp_replace(email, '[^.]', '', 'g')) as email_period
*#applying this to the email (my.first_name@abc.com) would return 2*
期待您提供有关 SQLite 解决方案的专业知识。提前谢谢你。
您可以使用简单的 REPLACE
和 LENGTH
来计算周期数:
CREATE TABLE tab(email VARCHAR(100));
INSERT INTO tab(email)
VALUES ('my.first_name@abc.com'),('my.first.name@abc.com.ru');
SELECT email, LENGTH(email) - LENGTH(REPLACE(email, '.', '')) AS email_period
FROM tab;
编辑:
数数:
SELECT email,
LENGTH(email) -
LENGTH(REPLACE( REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(email, '0', '')
,'1', ''),'2', ''),'3', ''),'4', '')
,'5', ''),'6', ''),'7', ''),'8', '')
,'9', '')) AS email_digits
FROM tab