Regex pyspark正则表达式匹配域\用户名模式
我有一个数组中带有domain\username的字符串。我想匹配它并替换它 该字符串具有以下模式:Regex pyspark正则表达式匹配域\用户名模式,regex,pyspark,Regex,Pyspark,我有一个数组中带有domain\username的字符串。我想匹配它并替换它 该字符串具有以下模式: [, DESKTOP-XXQYY56\Adminaccount, ] [, MB4345XX\adminaccount, ] 我使用的代码如下: df2= df1.withColumn( 'str1', regexp_replace( 'str', r'^([A-Za-z0-9]+(-[A-Za-z0-9]+)*)+(\\?([A-Za-z0-
[, DESKTOP-XXQYY56\Adminaccount, ] [, MB4345XX\adminaccount, ]
我使用的代码如下:
df2= df1.withColumn(
'str1',
regexp_replace(
'str',
r'^([A-Za-z0-9]+(-[A-Za-z0-9]+)*)+(\\?([A-Za-z0-9])+)*',
'AB22'
)
)
我无法正确匹配图案。我想匹配字符串并替换它。请建议。如果您想匹配该格式并将
域\用户
替换为XXXX,您可以使用两个捕获组来开始[,
和结束,]
您可以省略锚点^
,在这部分([A-Za-z0-9])+
中,将量词+
移动到字符类[A-Za-z0-9]+
,否则您将重复匹配单个字符的组
如果不单独使用捕获组进行进一步处理,可以将它们转换为非捕获组(?:
模式可能看起来像
(\[, )[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*(?:\\?[A-Za-z0-9]+)*(, \])
部分地
捕获组1匹配(\[,)
[,
匹配字符类中列出的任意字符的1+倍[A-Za-z0-9]+
非捕获组(?:
匹配-[A-Za-z0-9]+
并匹配1+次所列的任何-
关闭非捕获组并重复0多次)*
非捕获组(?:
匹配可选的\\?[A-Za-z0-9]+
和所列任意值的1+倍\
关闭非捕获组并重复1+次)*
Capturegroup 2match(,\])
,]
$1XXXX$2
如果您想匹配该格式并将
域\用户
替换为XXXX,您可以使用两个捕获组来开始[,
和结束,]
您可以省略锚点^
,在这部分([A-Za-z0-9])+
中,将量词+
移动到字符类[A-Za-z0-9]+
,否则您将重复匹配单个字符的组
如果不单独使用捕获组进行进一步处理,可以将它们转换为非捕获组(?:
模式可能看起来像
(\[, )[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*(?:\\?[A-Za-z0-9]+)*(, \])
部分地
捕获组1匹配(\[,)
[,
匹配字符类中列出的任意字符的1+倍[A-Za-z0-9]+
非捕获组(?:
匹配-[A-Za-z0-9]+
并匹配1+次所列的任何-
关闭非捕获组并重复0多次)*
非捕获组(?:
匹配可选的\\?[A-Za-z0-9]+
和所列任意值的1+倍\
关闭非捕获组并重复1+次)*
Capturegroup 2match(,\])
,]
$1XXXX$2
您到底想匹配和替换什么?上面的示例是包含方括号的示例字符串?请尝试省略锚定
^
我有域\用户格式的数据,例如[,DESKTOP-XXQYY56\Adminaccount,][,MB4345XX\Adminaccount,]。我想找到此数据并将其替换为“XXXX”您到底想匹配和替换什么?上面的示例是包含方括号的示例字符串?请尝试省略锚定^
我有域\用户格式的数据,例如[,DESKTOP-xxqyyy56\admincount,][,MB4345XX\admincount,]。我想找到此数据并将其替换为“XXXX”