相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)

但不是这些:

<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)

我想出了这个,并希望确保我做对了.我只抓住了a-z.

<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

Javascript:负面的lookbehind相当于?

有没有办法在javascript正则表达式中实现相当于负面的lookbehind?我需要匹配一个不以特定字符集开头的字符串.

如果在字符串的开头找到匹配的部分,我似乎无法找到正确执行此操作的正则表达式.负面的看起来似乎是唯一的答案,但javascript没有.

编辑:这是我想要工作的正则表达式,但它没有:

(?<!([abcdefg]))m

所以它会匹配'jim'或'm'中的'm',但不会匹配'jam'

javascript regex negative-lookbehind

133
推荐指数
6
解决办法
7万
查看次数

RegExp的exec()函数和String的match()函数有什么区别?

如果我运行这个:

/([^\/]+)+/g.exec('/a/b/c/d');
Run Code Online (Sandbox Code Playgroud)

我明白了:

["a", "a"]
Run Code Online (Sandbox Code Playgroud)

但如果我运行这个:

'/a/b/c/d'.match(/([^\/]+)+/g);
Run Code Online (Sandbox Code Playgroud)

然后我得到了预期的结果:

["a", "b", "c", "d"]
Run Code Online (Sandbox Code Playgroud)

有什么不同?

javascript regex

112
推荐指数
5
解决办法
4万
查看次数

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

正则表达式看看VS Code背后?

我正在研究VS Code中的语法扩展,而且我在查看正则表达式模式时遇到了困难.给定以下字符串,我想只返回cmp,前面是@fmt(

@fmt(cmp,foo)
Run Code Online (Sandbox Code Playgroud)

我在另一个编辑器中使用的匹配字符串是这样的:

(?<=[@|©](fmt)\()(\w+)
Run Code Online (Sandbox Code Playgroud)

但是,这在VS Code中不起作用,当我进行正则表达式搜索时,它会返回错误,表明它不是有效的表达式.玩弄它,问题是<=字符,表明背后的外观.

搜索VS Code网站不会返回任何类型的正则表达式参考指南.搜索Stack Overflow提出了这个问题,该问题表明Visual Studio具有唯一的正则表达式定义.不幸的是,该问题中给出的示例在VS Code中不起作用.

有谁知道如何看看VS Code中的正则表达式?或者至少知道VS Code的正则表达式文档在哪里?

我担心这是不可能的,因为根据Stack Overflow参考,JavaScript中不支持后面的内容.还有一个问题显示了如何模仿JavaScript函数中的后台,但我不知道是否可以使用用户定义的函数扩展VS Code中的语言.如果有人知道如何做到这一点,并且可以指向我这个方向,那也是一种可接受的解决方法.

regex regex-lookarounds visual-studio-code vscode-extensions

7
推荐指数
2
解决办法
4161
查看次数

需要固定长度正则表达式吗?

我有这个使用前向和后向预测的正则表达式:

import re
re.compile("<!inc\((?=.*?\)!>)|(?<=<!inc\(.*?)\)!>")
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其从 C# 移植到 Python,但不断收到错误

look-behind requires fixed-width pattern
Run Code Online (Sandbox Code Playgroud)

是否可以用 Python 重写它而不失去意义?

这个想法是为了让它匹配类似的东西

<!inc(C:\My Documents\file.jpg)!>
Run Code Online (Sandbox Code Playgroud)

更新

我正在使用lookarounds来解析我修改过的HTTP多部分文本

body = r"""------abc
Content-Disposition: form-data; name="upfile"; filename="file.txt"
Content-Type: text/plain

<!inc(C:\Temp\file.txt)!>
------abc
Content-Disposition: form-data; name="upfile2"; filename="pic.png"
Content-Type: image/png

<!inc(C:\Temp\pic.png)!>
------abc
Content-Disposition: form-data; name="note"

this is a note
------abc--
"""

multiparts = re.compile(...).split(body)
Run Code Online (Sandbox Code Playgroud)

我只想在进行分割时获取文件路径和其他文本,而不必删除开始和结束标签

<!inc(代码简洁很重要,但如果可以使正则表达式可行,我愿意更改格式。

c# python regex lookbehind

0
推荐指数
1
解决办法
2523
查看次数