求一正则表达式如何写?
发布网友
发布时间:2022-04-30 22:30
我来回答
共4个回答
热心网友
时间:2022-06-19 15:53
先说一句:
烦请把问题说明白。
你这里,“如果这个字符串中包含table class result id 就返回true”,也没说清楚:
(1)是同时包含这四个
(2)还是只包含其中某一个或几个
(3)同时包含4个,而且其中一定要<table xxx class=result id=yyy>
此处,推测你估计是要(3)这种,那么对应表达式为:
<table[^<>]+class=result\s+id=.+?>
其中的:
[^<>]+:表示是匹配尽量多的,除了 大于号,小于号之外的其他任何字符
\s+:表示result和id之前一个或多个空白字符,此处匹配那个单个的空格
.+?:匹配id=后面的尽可能少的字符知道最后的大于号>
不会写正则表达式的话,建议你去看看我写的;
【教程】以Python中的re模块为例,手把手教你,如何从无到有,写出相对复杂的正则表达式
这样以后就有了大概的思路和逻辑,自己写了。
另外,感兴趣也可以看看:
【教程】如何教你看懂复杂的正则表达式
-------------------------
那这样写:
<table(([^<>]*?class=result[^<>]*?id=1[^<>]*?)|([^<>]*?id=1[^<>]*?class=result[^<>]*?))>
其中:
是
<table((xxx)|(yyy))>
的形式,表示匹配xxx或者yyy。
其中的:
xxx是先class=result后id=1:
([^<>]*?class=result[^<>]*?id=1[^<>]*?)
yyy是先id=1后class=result:
([^<>]*?id=1[^<>]*?class=result[^<>]*?)
(此处不能贴地址,请自行用google搜帖子标题,就可以找到帖子地址了)
热心网友
时间:2022-06-19 15:53
string.test(/(?=table|class|id|result)/)
这样应该可以匹配如果字符串里有 上述任一字符
string.test(/(?=.*table)(?=.*class)(?=.*result)(?=.*id)/
这样可以匹配上述4个全部都有
热心网友
时间:2022-06-19 15:54
string.test(/table.*class.*result.*id/)
如果顺序不固定 那么 就需要分着写
string.test(/table/)&&string.test(/class/)&&string.test(/result/)&&string.test(/id/)
热心网友
时间:2022-06-19 15:54
<table\b(?=[^>]*class=result)[^>]*\bid=[^>]*>
需要至少一个环视追问你好,我想请问一下,如何或者正则里面的Id的值呢?