New Bing 帮我写正则
对正则又不精通,自己写多难呀,还得调半天,来一起看看必应能不能帮忙搞一下。
提问
可以帮我写个正则表达式么
回答
你好,这是必应。我可以帮你写一个正则表达式,但是你需要告诉我你想要匹配什么样的字符串。😊
提问
我想匹配 下面这些内容里 url() 括号内assets开始的内容,但是要剔除里面的单引号和双引号
url(./../../assets/xxxxx)
url('./../../assets/xxxxx')
url("./../../assets/xxxxx")
url(./assets/xxxxx)
url('../assets/xxxxx')
url("assets/xxxxx")
回答
好的,我明白了。你想要匹配 url() 括号内以 assets 开始的内容,但是要剔除里面的单引号和双引号。一个可能的正则表达式是:
url\((['"]?)(.*?assets[^'")]+)\1\)这个正则表达式的意思是:
url\(匹配字母 url 和左括号,左括号需要转义,因为它是一个特殊字符。(['"]?)匹配一个可选的单引号或双引号,并且捕获它作为第一个分组,分组用括号表示。(.*?assets[^'")]+)匹配任意数量的任意字符,直到遇到 assets,然后匹配一个或多个非单引号、双引号或右括号的字符,并且捕获它作为第二个分组,这就是我们想要的 url 的内容。\1匹配第一个分组捕获的内容,也就是单引号或双引号,如果有的话。这样可以确保左右引号是一致的。\)匹配右括号,需要转义。你可以用这个网站来测试你的正则表达式:https://regex101.com/
第二问
上面的结果有点问题,我并不想要assets之前的内容
回答
抱歉,我可能理解错了你的需求。如果你只想要 assets 之后的内容,你可以用这个正则表达式:
url\((['"]?).*?(assets[^'")]+)\1\)这个正则表达式的意思是:
url\(匹配字母 url 和左括号,左括号需要转义,因为它是一个特殊字符。(['"]?)匹配一个可选的单引号或双引号,并且捕获它作为第一个分组,分组用括号表示。.*?匹配任意数量的任意字符,但是尽量少匹配,这样可以跳过 assets 之前的内容。(assets[^'")]+)匹配字母 assets 和一个或多个非单引号、双引号或右括号的字符,并且捕获它作为第二个分组,这就是我们想要的 url 的内容。\1匹配第一个分组捕获的内容,也就是单引号或双引号,如果有的话。这样可以确保左右引号是一致的。\)匹配右括号,需要转义。你可以用这个网站来测试你的正则表达式:https://regex101.com/
测试结果


浙公网安备 33010602011771号