正则表达式 way to explore https:https://cdn.v2ex.com/navatar/3988/c7f8/137_normal.png?m=1643852696 https:https://cdn.v2ex.com/navatar/3988/c7f8/137_large.png?m=1643852696 2024-12-30T05:50:00Z Copyright © 2010-2018, V2EX 增加一点动力学正则 tag:www.v2ex.com,2024-12-30:/t/1101184 2024-12-30T02:18:08Z 2024-12-30T05:50:00Z cj323 member/cj323 说来惭愧,作为程序员,正则一直不咋会。

反思了一下也许是因为懒 - 需要搜索的时候习惯无脑 fzf ;没法 fzf 的时候能 glob 就 glob ,再不行就 if else 。。。

今天突然发现终端程序less不能用 glob ,而less这个程序又很好用且哪里都有,无形中给使用者多了一点动力学正则。

大家还有什么时候很需要正则呢。

]]>
求教,如何系统性的学习正则表达式? tag:www.v2ex.com,2024-06-13:/t/1049252 2024-06-13T07:08:07Z 2024-06-13T08:12:19Z rainfy member/rainfy 之前都是看了网上的一些入门教程,把业务完成就算了,给个正则也能看个 7788 ,但是一些复杂的用法就不清楚了。想系统性的学习一下,请问有什么书或者视频教程推荐的?

]]>
sigil 正则表达式疑问 tag:www.v2ex.com,2024-06-01:/t/1045975 2024-06-01T09:34:23Z 2024-06-01T09:33:23Z ABCDiSDR member/ABCDiSDR 使用^[^<].*[^>]$来标记文本段落以用于添加段落符
之前是可以正常识别的,现在不知为何识别不了了。

目前的状态是,第一次匹配是正常的,第二或以上次匹配,会由上一段段尾的空白处开始标注至本段的文本结尾处。
问了 GPT 说是我的设置有问题,但 sigil 并没有相关正则表达式的设置。且给了正确的匹配表达式。
个人分析可能的原因是,之前我是 txt 文本复制到的 sigil 现在是 pages 的文本复制到的 sigil
求指教异常的原因,及方案

另外求个 sigil 搜索模板配制的文件位置 ]]>
editplus 中如何去掉空格 tag:www.v2ex.com,2024-05-07:/t/1038252 2024-05-07T00:01:31Z 2024-05-07T00:01:31Z iamhrh2 member/iamhrh2

只保留  中文与中文 数字和数字 英文和英文 英文和数字 数字和英文之间的空格

其余空格全部去掉,,这种正则应该怎么写 ]]>
临门一脚,这个正则怎么匹配不上字符串啊? tag:www.v2ex.com,2024-04-12:/t/1032049 2024-04-12T10:55:44Z 2024-04-12T13:23:45Z bug51 member/bug51 目标字符串:

<!--#region REMOVE--> <h1>sdfsdf</h1> <h2>sdfsdf</h2> <h1>sdfsdf</h1> <h2>sdfsdf</h2> <h1>sdfsdf</h1> <h2>sdfsdf</h2> <!--#endregion REMOVE--> 

正则:

^\<\!\-\-\#region REMOVE.*[.|\n|\W|\w]*^\<\!\-\-\#endregion REMOVE.*$ 

哪位好心人帮忙看看 多谢多谢!!

]]>
正则表达式合集帖(希望本帖能存活十年以上) tag:www.v2ex.com,2024-03-29:/t/1027988 2024-03-29T01:38:01Z 2024-03-29T07:15:21Z oakland member/oakland
  • 欢迎大家在这篇文章下面评论留言,给出自己在日常 coding 的过程中写过的正则表达式,并给出说明和示例,注明对应的语言,如果能给出如何写出来的详细解释更好。
  • 欢迎大家留言给出自己想要实现的正则表达式(注明语言),然后群友给 ta 解答。
  • 欢迎大家“优化”已经留言的正则表达式。
  • 我希望这篇文章成为所有 “讨厌” 和 “喜爱” 正则表达式的同学的聚集地,并最终能让所有人理解和熟悉正则表达式。
  • ]]>
    正则如何完整匹配整个单词 tag:www.v2ex.com,2024-03-14:/t/1023479 2024-03-14T01:42:22Z 2024-03-15T11:28:08Z laters member/laters 我有一个规则清单

    const keywords = [Stop,.............]

    monaco.languages.register({ id: "mySpecialLanguage" }); monaco.languages.setMonarchTokensProvider("mySpecialLanguage", { tokenizer: { root: [ [/(?<!\w)Stop(?!\w)/, 'keyword'] ], }, }); monaco.editor.defineTheme("myCoolTheme", { base: "vs", inherit: false, rules: [ { token: 'keyword', foreground: 'f1d710' }, ], colors: { "editor.foreground": "#000000", }, }); monaco.editor.create(document.getElementById("container"), { theme: "myCoolTheme", value: `Stop QdStop qdStop 11Stop StopSS Stop11 Stopdd `, language: "mySpecialLanguage", }); 

    我期望将 keywords 中的所有单词高亮显示,列表中包含 Stop,但以 Stop 结尾的单词仍会高亮显示

    Stop 开头的效果是正确的,但是 Stop 结尾的效果是错误的,应该显示为黑色,而不是黄色

    如何将其突出显示为仅用于停用词的关键字,如果前后有字母或单词,则不应突出显示

    ]]>
    请问 EM 正则如何在文章最前面添加一段话 tag:www.v2ex.com,2024-03-13:/t/1023159 2024-03-13T03:12:55Z 2024-03-13T03:12:55Z iamhrh2 member/iamhrh2 [ A ] 点赞量 [] 5%
    [ A ] 转发量 [] 5%
    [ A ] 评论量 [] 4%
    [ A ] 指数 [] 5%



    如上面例所示。EM 正则怎么删掉第一行的 [ A ] ,删除之后,在最前面添加一段话:本研究案例参照前文所示。

    最终效果如:

    本研究案例参照前文所示。
    非负信息总量 [] 5%
    [ A ] 点赞量 [] 5%
    [ A ] 转发量 [] 5%
    [ A ] 评论量 [] 4%
    [ A ] 指数 [] 5% ]]>
    求教,这个正则怎么写 tag:www.v2ex.com,2024-03-06:/t/1021089 2024-03-06T06:00:41Z 2024-03-06T06:18:20Z abc0123xyz member/abc0123xyz 求教正则咋写。

    有一段 html 文本,内容是物理或者化学题。

    类似于下面这样

    实验室用固体 NaOH 配制 250mL1.00mol/L 的 NaOH 溶液。请回答下列问题: ( 1 )配制该溶液需称取 NaOH 固体.................(省略) ( 2 )配制上述溶液时正确的操作顺序是 .................(省略) ( 3 )以下情况会导致所配溶液浓度偏低的是 ( 4 )通入一定量的 CO .................(省略) ..................... ( n )所加盐酸的浓度为 

    想通过正则进行匹配切割成数组,匹配规则是括号+数字,下方
    ( 1 )( 2 )( 3 )( 4 ).....................( n )






    然后剩下的就是对数组中的每个元素单独做业务上的处理

    ]]>
    /(\w*)*$/.test('aaa#')这个正则导致我们的页面炸了……不同语言居然不一样 tag:www.v2ex.com,2024-03-01:/t/1019886 2024-03-01T10:17:25Z 2024-03-01T13:21:47Z phpfpm member/phpfpm -2 本文用到的相关工具的版本
    • Chrome=122.0.6261.69
    • Nodejs=v10.19.0
    • PHP 7.4.3-4ubuntu2.20 (cli) (built: Feb 21 2024 13:54:34) ( NTS )
    • Python 3.8.10
    • go version go1.13.8 linux/amd64

    (不要吐槽和讨论版本,除非你确定这玩意在新版本上没问题,生产环境随便找台机器测的)

    -1 这玩意哪来的?

    这玩意是我们前端同学问 GPT ,如何写一个匹配网址的正则问到的。

    (/^( https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).test('https://foo.com/a-long-url-contains-path-and-query-and-anchor/foo/bar/baz?boo=baa#anchor'); 

    *** (这个真的可以执行,建议新窗口 F12 试下) ***

    于是,真的匹配一段文本的时候,就导致浏览器卡死了,无法做后续渲染,在 profiling 的时候查到是这个正则的问题。

    0 MVP 测一下

    function testRegexPerformance(repeatCount) { var testString = 'a'.repeat(repeatCount) + '#'; var regex = /(\w*)*$/; var startTime = process.hrtime(); var result = regex.test(testString); var endTime = process.hrtime(startTime); var executiOnTime= endTime[0] * 1000 + endTime[1] / 1000000; console.log("Repeat Count:", repeatCount); console.log("Execution Time:", executionTime + " milliseconds"); console.log("-----------------------------------" + result); } // 测试从 1 到 50 的重复次数 for (var i = 1; i <= 50; i++) { testRegexPerformance(i); } Repeat Count: 20 Execution Time: 35.191223 milliseconds -----------------------------------true Repeat Count: 21 Execution Time: 71.355698 milliseconds -----------------------------------true Repeat Count: 22 Execution Time: 140.852157 milliseconds -----------------------------------true Repeat Count: 23 Execution Time: 287.687666 milliseconds -----------------------------------true Repeat Count: 24 Execution Time: 577.368917 milliseconds -----------------------------------true Repeat Count: 25 Execution Time: 1148.243059 milliseconds -----------------------------------true Repeat Count: 26 Execution Time: 2297.804939 milliseconds 

    i=25的时候,执行时间就到了秒级,之后都是指数级增长。

    1 结果是 true 是符合预期的

    *表示 0 个或者多个,没有任何一个\w 也是没问题的

    2 Regexp.test vs String.match

    # 不匹配 > 'a'.match(/(b)/) null # 匹配 > 'a'.match(/(b)/) null # 匹配 > 'aa'.match(/(a)/) [ 'a', 'a', index: 0, input: 'aa', groups: undefined ] # 不那么匹配 > 'aaa#'.match(/(\w*)*$/) [ '', undefined, index: 4, input: 'aaa#', groups: undefined ] # 匹配? > /(\w*)*$/.test('aaa#') true > 

    起因是我旁边的同学说.net 没有 test ,只有 match ,而且结果是 false

    所以,js 里面如果用 match 试下,大概有三种结果:

    3 其他语言的表现?

    4 所以是为啥?

    二楼放测试程序,不占地儿了

    ]]> 这个可以用正则表达式做到吗?GPT 聊了半天了 tag:www.v2ex.com,2024-02-22:/t/1017679 2024-02-22T13:36:47Z 2024-02-22T18:50:40Z jsjcjsjc member/jsjcjsjc 想把标记字符 mark123 之间的回车删除 比如原始样本:

    mark123 test test test test test test mark123 test mark123 mark123 mark123 test test mark123 mark123 

    删除编辑 mark123 之前的回车,当然 test 是随机字符,但 mark123 是确定的

    mark123testtesttesttesttesttest mark123test mark123 mark123 mark123testtest mark123 mark123 

    感谢

    ]]>
    [求助]如何利用正则表达式将文本或换行用 p 标签包裹起来 tag:www.v2ex.com,2023-11-17:/t/992901 2023-11-17T11:55:33Z 2023-11-17T12:33:57Z fgt1t5y member/fgt1t5y 就是像下面这样:

    第一行 第二行 

    转换为

    <p>第一行</p> <p></br></p> <p>第二行</p> 

    本人对正则表达式不太了解,特来 V 站问问万能的 V 友们。

    不求最优解,有思路就好。

    ]]>
    正则匹配,怎么匹配不定内容的成对的中间的内容呢? tag:www.v2ex.com,2023-10-27:/t/986124 2023-10-27T12:20:23Z 2023-10-27T14:22:19Z nyxsonsleep member/nyxsonsleep 彻底实现效果,请一杯咖啡(红包),聊表谢意。

    ... abc.js: actual output: { "loc": { "start": { "line": 1, }, "end": { "line": 1, } } } Error: xxxx abc.js: actual error: ... 

    abc.js 不是固定内容(可能有 xxx.js 等),

    abc.js 的数量不止一对,

    actual output 和 actual error 是固定存在内容的有且仅有一对。

    保留 abc.js 信息。

    需要匹配多组

    ]]>
    正则表达式 locate --regex 'bin/(bz|gz|zip)'有没语法问题? tag:www.v2ex.com,2023-10-17:/t/982883 2023-10-17T11:45:20Z 2023-10-17T18:12:35Z sleepingdog member/sleepingdog 我用 find 搜索,明明都存在/usr/bin/zip 。 ]]> 上下两行内容合并正则有办法能实现吗 tag:www.v2ex.com,2023-07-30:/t/960914 2023-07-30T02:28:03Z 2023-07-30T05:06:47Z iamhrh2 member/iamhrh2
    效果前
    〖 BH 〗 AAA 〖〗〖〗〖〗〖〗 0.020 〖〗-0.017
    〖 BH 〗〖〗〖〗〖〗〖〗(0.027)〖〗(0.015)
    〖 BH 〗 BBB 〖〗〖〗〖〗〖〗-0.225**〖〗 0.018**
    〖 BH 〗〖〗〖〗〖〗〖〗(0.113)〖〗(0.009)
    〖 BH 〗 CCC 〖〗-1.087***〖〗 0.413***〖〗〖〗-0.966***〖〗 1.033***
    〖 BH 〗〖〗(0.147)〖〗(0.081)〖〗〖〗(0.175)〖〗(0.323)

    效果后
    〖 BH 〗 AAA 〖〗〖〗〖〗〖〗 0.020(0.027)〖〗-0.017(0.015)
    〖 BH 〗 BBB 〖〗〖〗〖〗〖〗-0.225**(0.113)〖〗 0.018**(0.009)
    〖 BH 〗 CCC 〖〗-1.087***(0.147)〖〗 0.413***(0.081)〖〗〖〗-0.966***(0.175)〖〗 1.033***(0.323) ]]>
    正则表达式如何截取一个完整括号的内容 tag:www.v2ex.com,2023-06-29:/t/952731 2023-06-29T07:43:48Z 2023-06-29T09:01:24Z ccjy778899 member/ccjy778899 注意,我函数可以随意嵌套。
    问过 gpt ,给不出答案。 ]]>
    有对 posix-正则 有研究的吗?问下 tag:www.v2ex.com,2023-05-09:/t/938721 2023-05-09T14:09:08Z 2023-05-09T15:08:08Z JinTianYi456 member/JinTianYi456 就参考这吧: https://dev.mysql.com/doc/refman/5.7/en/regexp.html

    [.characters.]

    Within a bracket expression (written using [ and ]), matches the sequence of characters of that collating element.

    mysql> SELECT '~' REGEXP '[[.~.]]'; -> 1 为啥不是单[?结果也是 1 呀 mysql> SELECT '~' REGEXP '[.~.]'; 

    [=character_class=]

    Within a bracket expression (written using [ and ]), [=character_class=] represents an equivalence class.

    里面没举例,可否写个例子?

    [:character_class:]

    Within a bracket expression (written using [ and ]), [:character_class:] represents a character class that matches all characters belonging to that class.

    mysql> SELECT 'justalnums' REGEXP '[[:alnum:]]+'; -> 1 为啥不是单[?结果也是 1 呀 mysql> SELECT 'justalnums' REGEXP '[:alnum:]+'; 

    [[:<:]], [[:>:]]

    These markers stand for word boundaries. They match the beginning and end of words, respectively.

    怎么需要 2 个来分别表示?

    ]]>
    editplus 求个全选正则忽略前面的符号及符号内的内容 tag:www.v2ex.com,2023-04-09:/t/930934 2023-04-09T02:26:15Z 2023-04-09T03:20:15Z iamhrh2 member/iamhrh2 [美]柏培文,张云数字经济、人口红利下降与中低技能劳动者权益[ J ]经济研究,2021 ,56(5):91-108 (中)曹玉书,楼东玮资源错配、结构变迁与中国经济转型[ J ]中国工业经济,2012(10):5-18 (法)陈梦根,周元任数字不平等研究新进展[ J ]经济学动态,2022(4):123-139 (法)陈梦根,周元任数字不平等研究新进展[ J ]经济学动态,2022(4):123-139 〔日〕陈文,吴赢数字经济发展、数字鸿沟与城乡居民收入差距[ J ]南方经济,2021(11):1-17 〖 JP6 〗李晓钟,李俊雨数字经济发展对城乡收入差距的影响研究[ J ]农业技术经济,2022(2):77-93 [法] 陈文,吴赢数字经济发展、数字鸿沟与城乡居民收入差距[ J ]南方经济,2021(11):1-17 李凯杰,曲如晓技术进步对碳排放的影响-基于省际动态面板的经验研究[ J ]北京师范大学学报(社会科学版),2012 ,( 5 ):129-139 田鸽,张勋数字经济、非农就业与社会分工[ J ]管理世界,2022 ,38(5):72-84 [澳大利亚]柏培文,张云数字经济、人口红利下降与中低技能劳动者权益[ J ]经济研究,2021 ,56(5):91-108 (澳大利亚)曹玉书,楼东玮资源错配、结构变迁与中国经济转型[ J ]中国工业经济,2012(10):5-18 (澳大利亚)陈梦根,周元任数字不平等研究新进展[ J ]经济学动态,2022(4):123-139 (法国)陈梦根,周元任数字不平等研究新进展[ J ]经济学动态,2022(4):123-139 〔日本〕陈文,吴赢数字经济发展、数字鸿沟与城乡居民收入差距[ J ]南方经济,2021(11):1-17 [法国] 陈文,吴赢数字经济发展、数字鸿沟与城乡居民收入差距[ J ]南方经济,2021(11):1-17 〖 JP2 〗李晓钟,李俊雨数字经济发展对城乡收入差距的影响研究[ J ]农业技术经济,2022(2):77-93 田鸽,张勋数字经济、非农就业与社会分工[ J ]管理世界,2022 ,38(5):72-84 “北京师范大学学报”(社会科学版),2012 ,( 5 ):129-139

    忽略前面的各种括号国籍(包括括号,引号,〖 JP2 〗等,),有方法能实验吗?

    ]]>
    各位老哥,正则怎么写能排除一个或多个特定的 IP,匹配剩余所有 IP(或者说是否可以实现) tag:www.v2ex.com,2023-02-17:/t/916999 2023-02-17T09:19:03Z 2023-02-17T17:33:29Z cpxjaz member/cpxjaz 如题

    ]]>
    想请教一个正则表达式,这正则能做吗 tag:www.v2ex.com,2023-02-10:/t/914982 2023-02-10T09:44:49Z 2023-02-10T09:44:49Z ccagml member/ccagml 背景

    想要的功能,这能用正则做吗?

    问了 OpenAI 感觉不太对,每次问结果都不一样

    Here's a regular expression that matches the return value type, function name, and parameter type in C++: (int|vector<int>|vector<vector<int>>|string|vector<string>|vector<vector<string>>|ListNode\*|vector<ListNode\*>|char|vector<char>|vector<vector<char>>|TreeNode\*|Node\*)\s(\w+)\((.*)\) The regular expression uses the following components: (int|vector<int>|vector<vector<int>>|string|vector<string>|vector<vector<string>>|ListNode\*|vector<ListNode\*>|char|vector<char>|vector<vector<char>>|TreeNode\*|Node\*) matches the return value type, which can be one of the specified types. \s matches a whitespace character. (\w+) matches the function name, which is one or more word characters. \(.*\) matches the parameter list, which is zero or more characters enclosed in parentheses. 

    举个例子

    vector<int> f(vector<int>& a, TreeNode *b, int d){ } 
     vector<int> arg1 = {}; TreeNode * arg2 = new TreeNode(xxx); int arg3 = 0; vector<int> result = f(arg1, arg2, arg3); 

    如果不能做,那只能写代码硬匹配了?

    ]]>
    使用正则.*ab.*搜索二进制文件(pdf 格式),搜不到 ab 但是.*a.*可以找到 a,除了 ab 还有别的正则写法么? tag:www.v2ex.com,2023-02-02:/t/912602 2023-02-02T07:36:42Z 2023-02-02T08:36:42Z vazo member/vazo 这个正则表达式怎么写,要么在开头,要么前面有空格 tag:www.v2ex.com,2023-01-13:/t/908767 2023-01-13T10:59:54Z 2023-01-13T12:17:32Z lry member/lry 要匹配 @ 符号

    @any => true
    xxx @any => true
    xxx@any => false

    ]]>
    求助:正则获取 sql 语句中的表名 tag:www.v2ex.com,2022-12-29:/t/905419 2022-12-29T09:45:35Z 2022-12-29T09:44:35Z CUPAIR member/CUPAIR
    * 表名有单词字母.和_

    * 目前写法:`const fromTable = lowerSql.match(new RegExp('\\b(from)\\b[\\s\\S]*?\\s+([\\w._]+)\\', "gi")) || []`

    但 safari 不兼容零宽断言 ]]>
    Safari 上不支持向后匹配的正则表达式,请教替代方法 tag:www.v2ex.com,2022-11-24:/t/897723 2022-11-24T14:50:14Z 2022-11-24T14:50:14Z mashirozx member/mashirozx 如下正则,在 Chrome 上 OK ,但是 Safari 上报 Invalid regular expression,看了一下原因是 Safari 不支持向后匹配 ((?<!),见 can i use

    如下是我的正则:

    /(?<!\/.*?)showLineNumbers(?:\{(\d+)})?/ 

    期望的效果如图:

    cc89c06c94b73a4b3b7956c0825a4654.png

    求一个不使用向后匹配表达式((?<!)的替代方法 🙏

    PS. 这个正则工具挺好用的: https://regex101.com

    ]]>
    正则表达式如何忽略子字符串中的内容 tag:www.v2ex.com,2022-11-15:/t/895346 2022-11-15T03:20:05Z 2022-12-09T19:19:05Z itskingname member/itskingname 我有一批字符串,他们的格式是这样的:

    a = 'abc[账号]def[密码]xyz' b = 'aaa[账号]还有"子字符串[无效内容]子字符串"bbb[密码]zzz' 

    我想提取所有中括号里面的内容,但忽略双引号内部的中括号中的内容。

    以上面两个字符串 a 和 b 为例,需要提取的内容都是『账号』和『密码』

    目前我能想到的办法是使用状态机来做。请问有没有使用正则表达式就能实现的方法?

    ]]>
    求助 nginx 的 rewrite,需求是把 http 流量转到 https tag:www.v2ex.com,2022-11-14:/t/895255 2022-11-14T14:40:57Z 2022-11-14T15:28:19Z qinrui member/qinrui 网上搜到这样一句:

     rewrite ^(.*)$ https://$host$1 permanent; 

    但是出现了循环重定向

    因为用的是 xinnet 的虚拟主机,rewrite 不能指定写在 80 端口下,所以导致 https 也重定向

    哪位大佬能帮忙写一个,判断 scheme 是 http://时,重定向到 https://

    ]]>
    求大佬指点 tag:www.v2ex.com,2022-10-20:/t/888475 2022-10-20T08:45:19Z 2022-10-16T21:00:07Z abc0123xyz member/abc0123xyz 如题,想从 html 中获取 token 的值,大概类似于下边的样子

    <!DOCTYPE html> <html> <body> <h2>xxx</h2> </body> <script> function myFunction() { token = "xxxxxxxx" } </script> </html> 
    ]]>
    iHateRegex 一个收录各种正则表达式的网站 tag:www.v2ex.com,2022-08-25:/t/875230 2022-08-25T01:44:01Z 2022-08-26T01:25:50Z Livid member/Livid https://ihateregex.io/expr/uuid/

    名字取得也很有意思。

    ]]>
    请教一下,如何利用正则表达将 html 中在<p></p>之间的/筛选出来 tag:www.v2ex.com,2022-08-09:/t/871800 2022-08-09T16:25:48Z 2022-08-09T18:48:23Z Moris member/Moris 例如,我有一个 html 内容如下

    <html> <p> Have a/ good/ day! 祝你 /开心! </p> </html> 

    我想要把在

    之间的 /去掉,变成

    <html> <p> Have a good day! 祝你开心! </p> </html> 

    请问该通过正则表达如何实现?

    ]]>
    ep 求一个数字和单位的正则 tag:www.v2ex.com,2022-07-22:/t/867912 2022-07-22T01:43:17Z 2022-07-22T05:10:24Z iamhrh2 member/iamhrh2 求个正则数字和单位之间空个软空
    效果如 100 cm 200 kg 5 GB/s 100 t 200 M

    求个安全的正则。。 ]]>
    正则菜鸟求教 tag:www.v2ex.com,2022-07-20:/t/867504 2022-07-20T04:07:33Z 2022-07-20T09:07:47Z tagtag member/tagtag <span>target</span> target <div>target</div>

    我想只替换没有被标签包裹的 target ,如果被标签包裹则忽略,应该怎么匹配啊,感谢感谢。 ]]>
    正则 backtrack 请教 tag:www.v2ex.com,2022-07-18:/t/867087 2022-07-18T10:44:25Z 2022-07-18T11:59:18Z Dropless member/Dropless 说正题之前,多请大家担待一下。正则的高级内容我全是跟着英文内容学的,所以有些专有名词我就直接用英文了,因为我不知道它对应的中文叫什么。

    问题如下:

    待匹配字符串:ABCD

    我的正则:(?>AB|BC)D

    按照我的理解我的正则应该不能匹配给定的字符串 ABCD 。但实际情况是匹配到了 BCD 。 我的理解是:先匹配 |的左边 pattern: AB, 在字符串里面匹配到了 AB 。继续前进匹配 D,匹配失败,字符串里面没有 ABD, 此时应当 backtrack, 使用 |的右边 pattern: BC。但问题在于,我使用了 atomic group ,而且此时的位置已经超出了 atomic group ,所以应当是不能 backtrack 的。所以整个正则应当匹配失败。 但测试结果证明我理解错了。

    所以请教一下大家为什么会这样,谢谢。 正则引擎:Boost 1.76.0

    ]]>
    求给生成一个正则表达式,年龄大了,脑子不够用了 tag:www.v2ex.com,2022-06-24:/t/862052 2022-06-24T17:46:56Z 2022-06-25T06:21:00Z wdc63 member/wdc63 1 必须是合法数字(前面不能多个 0 ) 2 范围必须在-1000 到 1000 之间(包括-1000 和 1000 ) 3 可以是整数,可以是小数,如果是小数位数必须小于等于两位

    例如 0.001 、9999 、-1.010 、01.32 不合法 99.99 、0 、-1.2 合法

    ]]>
    请问正则这种替换该怎么填 tag:www.v2ex.com,2022-06-03:/t/857145 2022-06-03T09:16:49Z 2022-06-03T11:07:46Z iamhrh2 member/iamhrh2 求个表格补 0 的正则表达式。 tag:www.v2ex.com,2022-05-21:/t/854296 2022-05-21T00:53:25Z 2022-05-21T09:03:00Z iamhrh2 member/iamhrh2 要求以小位数点后多位为准。补 0
    比如 9.2 改成 9.20 8.50 18.50

    这个在 eme 或 eeditplus 正则该怎么写
    查找什么 替换什么 ]]>
    求个正则? pathname/{id}/sub_pathname tag:www.v2ex.com,2022-04-25:/t/849163 2022-04-25T07:02:49Z 2022-04-25T08:06:56Z zzlatan member/zzlatan 里面 id 是个变量,这种该怎么写正则呢。感谢各位大哥,小白谢过了。

    ]]>
    [求助] 请问正则从后往前非贪婪匹配 tag:www.v2ex.com,2022-04-21:/t/848439 2022-04-21T12:45:52Z 2022-04-21T13:18:11Z stultulo member/stultulo 请问想下面这种用重复片段 abc 组成的字符串

    str = "abcaada2abcbfb3abccdsc4abcddd5" 

    想要匹配 abc4 及之间的字符:

    abccdsc4 

    使用 abc4 作为定位符,结果

    >>> print(re.search('abc.*?4', str)) <re.Match object; span=(0, 23), match='abcaada2abcbfb3abccdsc4'> 

    请教一下大家,该如何实现需求?感激

    ]]>
    [求助]正则表达式的正向否定预查,无法筛选某些字符串 tag:www.v2ex.com,2022-03-22:/t/842059 2022-03-22T03:36:35Z 2022-03-22T05:04:33Z ALLROBOT member/ALLROBOT every(?!n) 匹配任何其后没有紧接指定字符串 n 的字符串。

     //匹配后面字符不为 10 的 win var str = "win7 win8 win10"; var res = str.match(/win(?!10)/g); console.log(res); //["win", "win"] 

    在以下文本中

    -0"][-ext-cOntains="/欧美(.*?)极乐天堂 /"],tbody[-ext-cOntains="/欧美(.*?)极乐天堂 /"] -0"][-ext-cOntains="/欧美(.*?)自由通行证 /"],tbody[-ext-cOntains="/欧美(.*?)自由通行证 /"] -0"][-ext-cOntains="/欧美(.*?)陶醉的芬香 /"],tbody[-ext-cOntains="/欧美(.*?)陶醉的芬香 /"] -0"][-ext-cOntains="/史上最贵 RPG:命中注定的召唤术(.*?)1.17/"] -0"][-ext-cOntains="/欧美(.*?)身心荡漾 /"] -0"][-ext-cOntains="/欧美(.*?)恶女管教所 /"] 

    使用d\-0\"\]\[\-ext\-contains\=\"(.*?)\"\](?!\,) d\-0\"\]\[\-ext\-contains\=\"(.*?)\"\](?!,)

    只能匹配-0"][-ext-cOntains="/欧美(.*?)极乐天堂 /"],tbody[-ext-cOntains="/欧美(.*?)极乐天堂 /"]

    无法匹配-0"][-ext-cOntains="/欧美(.*?)身心荡漾 /"]这种不带","标点的字符串

    编写的正向否定环视哪里出问题了

    ]]>
    全书很多空格,求一个正则表达式帮我看看是否行的通? tag:www.v2ex.com,2022-03-17:/t/841117 2022-03-17T13:51:32Z 2022-03-17T14:33:00Z iamhrh2 member/iamhrh2 全书里面中英数都有,

    只保留英文和数字,数字和数字,英文和英文之间原有的空格。

    其他的空格全部替换掉,包括标点符号之间的空格也替换掉。

    懂正则的朋友麻烦给我看看能否行的通。谢谢

    ]]>
    请问正则表达式中,中间部分的?:的作用是什么? tag:www.v2ex.com,2022-03-04:/t/837966 2022-03-04T06:48:01Z 2022-03-04T07:06:39Z 17681880207 member/17681880207 需求

    正则验证数字,并且最多保留 2 位小数。

    实现

    const regExp1 = /^(-)?\d+(?:.\d{1,2})?$/ const regExp2 = /^(-)?\d+(.\d{1,2})?$/ 

    测试

    // assume the value is: // 1,1.1 regExp1.test(value:number) regExp2.test(value:number) 

    测试发现,value 的结果都一样,请请教下大家,该如何理解?:的作用,不胜感激~

    ]]>
    关于正则数字添加千分号 /\B((?=(?:\d{3}))+$)/g 不太理解 tag:www.v2ex.com,2022-01-29:/t/831230 2022-01-29T02:26:10Z 2022-01-29T04:58:14Z weixiangzhe member/weixiangzhe img

    (?=(?:\d{3}) 可以匹配到 "333" 前面的空字串 ""

    (?=(?:\d{3})+ 一到多个 但匹配里的 $ 号,或者有些人写的 (?!\b) 是啥意思呢

    '8123456789'.replace(/\B(?=(?:\d{3})+$)/g,',') // 8,123,456,789 "8123456789".replace(/\B(?=(?:\d{3})+(?!\d))/g,",") // 8,123,456,789 

    为什么不能写成

    '8123456789'.replace(/\B(?=(?:\d{3}))+$/g,',') // '8123456789' 
    ]]>
    请问提取 caseId 的数字正则怎么写? tag:www.v2ex.com,2021-12-02:/t/819570 2021-12-02T08:10:35Z 2021-11-28T08:08:35Z tibifide member/tibifide
    期望把“574”提取出来。 ]]>
    求个正则 tag:www.v2ex.com,2021-11-21:/t/816961 2021-11-21T09:41:40Z 2021-11-21T10:40:40Z fangwenxue member/fangwenxue 我想要的结果 求个正则 const s = '/hello' // match[1] = hello const s = '/hello/abcd' // match[1] = hello // match[2] = /abcd const s = '/hello/' // match[1] = hello // match[2] = / console.log(s.match(/\/([^\/]+)?(.+)/i)) ]]> JS 里面的 string.match,怎么把匹配字符串取出来? tag:www.v2ex.com,2021-09-22:/t/803424 2021-09-22T08:52:34Z 2021-09-22T09:41:15Z yazoox member/yazoox typescript

    const regKey: string = /^google-(.+){10,}-name$/; const name1: string = "google-15922231201-name"; const name2: string = "google-dbid%3AAACd8VcY240_OYIPqr4L-8M6RvNEDErLG1s-name"; const matches1 = name1.match(regKey); const matches2 = name2.match(regKey); 

    在这里,matches1[1],是能够拿到 "15922231201",但是,matches2[1],却拿不到中间的那一长串字符串。返回值是 "s",只有一个 s......

    我在 https://regex101.com/ 这里试过,引擎选 Javascript,这两字符串,都是符合要求的。

    请问一下,这里的 reg 哪里写的不对。

    另,我知道可以直接用 substring + 长度,直接拿到 google- & -name 匹配的中间的字符串,但这里,我想了解下,这个正则是哪里写得不对了?

    ]]>
    求大佬指点 js 正则,拜谢 tag:www.v2ex.com,2021-09-14:/t/801839 2021-09-14T12:07:21Z 2021-09-14T13:51:21Z MinYa member/MinYa 密码校验的正则 /(?!.*[\u4E00-\u9FA5\s])(?!^[a-zA-Z]+$)(?!^[\d]+$)(?!^[^a-zA-Z\d]+$)^.{6,20}$/g

    当前规则是 6-20 位,大写字母,小写字母,数字和标点符号(除空格)满足两种即可。

    如果我想改造这个正则,分别判断满足一种,二种,三种,四种应该怎么改写,正则不会写,拜谢大佬们了

    ]]>
    求问:正则对位置匹配是怎么处理的? tag:www.v2ex.com,2021-08-15:/t/795925 2021-08-15T11:35:28Z 2021-08-15T16:15:03Z deeprobe member/deeprobe 看到的都是特征匹配,位置匹配很少。比如一串字符,匹配第三个字符,正则怎么写呢?

    ]]>
    正则表达式如何嵌套匹配 tag:www.v2ex.com,2021-08-10:/t/794904 2021-08-10T10:34:35Z 2021-08-10T10:31:35Z SSang member/SSang RegionInfoMessage `json:"RefreshAfter"`

    需要匹配

    开头:

    json:" 

    结尾:

    " 

    内的单词的大写

    即匹配结果为

    R A 

    我只知道这样

    (?<=json:").*?(?=") 

    可以匹配出

    RefreshAfter 

    之后应该怎么做

    ]]>
    我请教一个 Python 正则表达式问题 tag:www.v2ex.com,2021-08-09:/t/794741 2021-08-09T16:12:11Z 2021-08-09T18:12:11Z neowong2005 member/neowong2005 我想把 proto=1 的行取出来,其他 proto=1 开头的不要,怎么用正则实现,Python,谢谢

    ]]>
    提问一个正则匹配的问题 tag:www.v2ex.com,2021-07-30:/t/792654 2021-07-30T03:32:29Z 2021-07-28T16:23:02Z sadfQED2 member/sadfQED2 如果我只想要正则匹配结果中的部分内容,有什么办法吗?比如我现在需要在一段文字中找出电话号码

    文字 demo:

    你好啊 010-6565656 你好!

    我的正则

    /\d+-\d+/

    这样拿到的匹配结果是 010-6565656,但是如果我只想要匹配结果中的电话号码,而不要区号的话怎么写呢(匹配语句里面还是得包含区号,只是输出结果不要区号)?我依稀记得有个什么写法可以只拿到想要的部分。但是太久没写正则了,不记得叫啥了,搜索引擎搜了半天也不知道关键字是啥

    ]]>
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86