我知道可以匹配一个单词,然后使用其他工具(例如grep -v
)反转匹配.但是,我想知道是否可以使用正则表达式匹配不包含特定单词的行(例如hede).
输入:
hoho
hihi
haha
hede
Run Code Online (Sandbox Code Playgroud)
码:
grep "<Regex for 'doesn't contain hede'>" input
Run Code Online (Sandbox Code Playgroud)
期望的输出:
hoho
hihi
haha
Run Code Online (Sandbox Code Playgroud) 如何在JavaScript中将'helloThere'或'HelloThere'之类的字符串转换为'Hello There'?
最近我(通过一些尴尬)意识到正则表达式lookbehind assertions
是不可能的Javascript
.
这种断言缺席的(事实)理由是什么似乎很常见?
我意识到也许有其他方法可以实现相同的功能,虽然它是工作中禁止功能的基本语义,还是究竟是什么?
似乎一些从正则表达式模式生成Javascript代码的正则表达式测试工具似乎忽略了这个事实 - 这让我觉得有些奇怪.
我需要更换所有\n
有\r\n
,但前提是\n
有没有\r
previosly.
即
Hello\nGreat\nWorld
- > Hello\r\nGreat\r\nWorld
Hello\r\nGreat\r\nWorld
- > Hello\r\nGreat\r\nWorld
.
在Java中,我可以通过下一种方式完成
"Hello\nGreat\nWorld".replaceAll("(?<!\r)\n", "\r\n");
Run Code Online (Sandbox Code Playgroud)
但(?<!X)
JS中缺少构造.
任何想法,我怎么能在JS中做到这一点?
在我的Javascript代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/
在Chrome中运行良好,但在safari中,我得到:
无效的正则表达式:无效的组说明符名称
有任何想法吗?
我有一些像这样的字符串
aa11b2s
abc1sff3
a1b1sdd2
Run Code Online (Sandbox Code Playgroud)
等....我需要将这些字符串更改为这些
aa 11 b 2 s
abc 1 sff 3
a 1 b 1 sdd 2
Run Code Online (Sandbox Code Playgroud)
简单地说..我需要在每个(数字/字母s)块之间添加一个空格
我正在尝试让茉莉花测试在Karma中运行。这适用于使用RequireJS的AngularJS应用程序,但是目前,该测试是没有Angular依赖项的简单expect(true).toBe(true);
测试。我发现,当我禁用噶的运行模块和注释掉并在和加载testSpec.js文件直接。requirejs
"client/app/require-shared.js"
"test/require-test.js"
files
但是,一旦我重新启用requirejs
RequireJS配置文件并将其添加回karma.conf.js的- files
保持testSpec.js文件在那里“静态”加载–我看到了错误
Chrome 33.0.1750 (Windows 7) ERROR
Uncaught TypeError: Cannot read property 'failedCount' of null
at C:/.../project/node_modules/karma-jasmine/lib/adapter.js:126
Chrome 33.0.1750 (Windows 7) ERROR
Uncaught TypeError: Cannot read property 'length' of null
at C:/.../project/node_modules/karma-jasmine/lib/jasmine.js:2518
Chrome 33.0.1750 (Windows 7): Executed 1 of 2 ERROR (0.009 secs / 0.001 secs)
Run Code Online (Sandbox Code Playgroud)
如果我尝试完整的Angular测试,$injector
则会收到有关为null的错误消息,但是我认为这全都植根于requirejs模块问题。我的安装程序中缺少什么来实现此目的?
测试/ karma.conf.js
module.exports = function(config) {
config.set({
basePath: "../", // resolves to "project/"
frameworks: ["jasmine", "requirejs"],
files: [
// …
Run Code Online (Sandbox Code Playgroud) 我有一个字符串,我想替换所有不跟随/跟随任何其他i的'i',并将其替换为'z`.我知道有负面的前瞻和后视.
结果应该是:
i => z
iki => zkz
iiki => iikz
ii => ii
iii => iii
Run Code Online (Sandbox Code Playgroud)
我试着用这个:
/(?<!i)i(?!i)/gi
Run Code Online (Sandbox Code Playgroud)
它失败并抛出一个错误:Invalid regex group
.
然而
/i(?!i)/gi
Run Code Online (Sandbox Code Playgroud)
工作正常,但匹配第二个"我":"ii".
还有其他方法吗?
如果有的话,对JS中的lookbehind的支持是什么?
javascript ×7
regex ×7
jquery ×1
karma-runner ×1
requirejs ×1
safari ×1
string ×1
unit-testing ×1