|
|
1
434
对于那些想要更深入地解释其工作原理的人,这里有一个来自用户的解释 ephemient
|
|
|
2
412
这使用了非贪婪*?操作员将捕获到但不包括下一个双引号的所有内容。然后,使用特定于语言的机制提取匹配的文本。 在Python中,您可以执行以下操作:
|
|
3
112
这个
是除'
'
|
|
4
33
让我们看看处理转义引号的两种有效方法。这些图案的设计既不简洁也不美观,而是高效的。 这些方法使用第一个字符区分来快速查找字符串中的引号,而无需进行替换。 (这样做的目的是在不测试交替的两个分支的情况下,快速丢弃不是引号的字符。)
引号之间的内容采用展开循环(而不是重复交替)进行描述,以提高效率:
显然,要处理没有平衡引号的字符串,可以使用所有格量词:
注意:有时引号不是用反斜杠转义的,而是通过重复引号转义的。在这种情况下,内容子模式如下所示:
)我是说
类似Perl:
(注意
(此模式的编写方式完全是“手动”的,不考虑最终的引擎内部优化) ECMA脚本:
POSIX扩展:
或者简单地说:
|
|
|
5
26
特别的是,这些答案都不会生成一个正则表达式,其中返回的匹配项是引号内的文本,这就是所要求的。马马登尝试了一下,但只把内线比赛作为一个被俘虏的小组,而不是整场比赛。实际做到这一点的一种方法是:
这方面的例子可以在这个演示中看到 https://regex101.com/r/Hbj8aP/1
这里的关键是开始时的积极回顾(
唯一的另一个复杂之处是,因为先行查找实际上并不使用结束引号,所以它将被起始先行查找再次找到,从而导致同一行上结束引号和起始引号之间的文本匹配。在开头的引语中添加单词边界(
|
|
|
6
23
accepted answer的正则表达式返回值,包括它们的双引号:
值介于 只有双引号 (使用捕获组#1的值):
单引号 (使用捕获组#1的值):
- 所有支持转义引号和嵌套引号。 |
|
|
7
12
|
|
8
10
我喜欢 Eugen Mihailescu's solution 匹配引号之间的内容,同时允许转义引号。但是,我发现了一些转义问题,并提出了以下正则表达式来解决这些问题:
它做到了这一点,并且仍然非常简单,易于维护。
附言:如果你只是想要内容
之间
不幸的是,没有引号作为锚,我不得不添加一个边界
group and extract the string form
PPS:如果你只关注效率,那就用 Casimir et Hippolyte's solution ; 这是一个好的。 |
|
|
9
8
模式
例如,它不能捕获许多字符串(如果需要,我可以提供一个详尽的测试用例),如下所示:
其余的都和上面的一样“好”。 如果您真的关心性能和精度,请从以下内容开始:
在我的测试中,它覆盖了我遇到的每一个字符串,但是如果你发现一些不起作用的东西,我很乐意为你更新它。 |
|
|
10
6
这个版本
|
|
11
5
或
正确,所以我尝试修复它:
|
|
|
12
5
太长,读不下去了
其工作方式是查找关键字,而不关心引号之间的其他内容。
|
|
|
13
4
试试这个,效果很好!!!
|
|
|
14
2
与亚当的答案不同,我有一个简单但有效的答案:
如果您想获得如下引号中的内容,只需添加括号:
然后
|
|
|
15
1
这将导致:>富吧<&燃气轮机<&燃气轮机;但这< 这里我显示了介于><'为了清楚起见,也使用非贪婪版本的sed命令,我们首先抛出“”之前和之后的垃圾,然后用“”之间的部分替换它,并用><'s |
|
|
16
1
从格雷格H。我能够创建这个正则表达式,以满足我的需要。 我需要匹配一个特定的值,该值通过内部引号限定。它必须是完全匹配,任何部分匹配都不能触发命中
猎人 |
|
|
17
1
哪里
例子:
|
|
|
18
1
关于子集合的补充答案
仅限Microsoft VBA编码器
|
|
|
19
1
它们不支持所有unicode字符! 如果您是节点用户,则可能需要支持所有unicode字符的已接受答案的修改版本:
尝试 here |
|
20
0
对我来说,这是一个:
我用过这样一句话:
而且效果很好。 |
|
|
DotFX · RegEx捕获关键字前但括号后的所有内容 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |
|
|
iato · 确保正则表达式不从命名材料中的数字中提取 1 年前 |
|
|
vr8ce · 非成对标记中特定字符的正则表达式 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |