0
text.scan(/\"[\d\w\s\+\-\*\/]*\"/)

我只是想在引用中找到可以包含字母、数字、空格、加号、减号、星号或正斜杠的任何内容。一切都在控制台中运行良好。以下每一项都适用于浏览器:

"abc"
"123"
"x-1" or "x - 1"
"x/1" or "x / 1"

但是加号和星号在浏览器中失败(尽管在控制台中使用相同的正则表达式工作正常)。有没有人有任何想法?

编辑 #1:我正在执行快速 gsub 以向扫描结果添加一些格式。如果引文中有加号或星号,它们甚至不会被扫描拾取。粘贴在控制台中的相同代码和文本可以正常工作。

编辑#2:我想出了一个更好的方法来构建这个问题而没有多余的细节并得到了答案。“如果结果包含正则表达式特殊字符,为什么我不能对扫描的每个结果执行 gsub?

4

2 回答 2

2

原来这个问题与正则表达式字符串插入(/#{whatever}/)没有转义特殊字符有关 - 手动转义将其清除(/#{Regexp.escape(whatever)}/)。有关完整示例/说明,请参阅此问题

于 2012-08-23T22:33:52.547 回答
0

我不知道“在浏览器中工作”是什么意思,但我假设您正在尝试解析 URL。在 URL 中,+&*符号可以分别转换为%2B& %2A

试试这个正则表达式:

/"[(\d\w\s\+\-\*\/|%2B|%2A)]+"/

...或在解析之前解码 URL。

于 2012-08-10T21:58:23.640 回答