匹配字符序列和其他不包含字符序列的字符序列
Match char sequence and other char sequences that do not contain char sequence
这听起来可能是一个已经多次出现的问题,但我找不到JavaScript的答案。
考虑流动的RegEx:
/("|,|'n|[^",'n]+)/
它匹配字符串中的一些字符以及不包含其中一个字符的任何其他序列。asd"asd,asd'n
将匹配:asd
、"
、asd
、,
、asd
、'n
。
我正在寻找类似的匹配方式,但使用字符串。
举一个更有用的例子:
匹配"or"answers"&"以及所有不是"或"answers"&"的事物:
The constructor is good or bad? The man & the lord are good.
将匹配:
The construct
、or
、is good
、or
、_ bad? The man
、&
、the l
、or
、d are good.
或具有[]之间的匹配项:
`[The construct][or][ is good ][or][ bad? The man ][&][ the l][or][d are good.]`
把它想象成一个包含一组字符串的字符串,这些字符串由类似("ab"(的字符序列分隔。然后,每个字符串表示由另一个序列("cd"(分隔的一组其他字符串。我想在大字符串中匹配所有作为分隔符的字符序列("ab"、"cd"(和所有其他不是的字符序列。
首先,我假设您打算在Lord
中的or
处断开字符串。如果没有,请告诉我,我会调整,因为一般技术保持不变。
这是一个有趣的问题,因为据我所知,js没有像PHP那样分割字符串并保留分隔符的选项。
然而,有一种简单的方法可以实现这一点。
第一步:用一个不寻常的文本块包围or
或&
的每个实例,您稍后将使用该文本块来拆分字符串。它的正则表达式是…drumroll。。。(or|&)
js代码类似于splitReady = str.replace(/(or|&)/mg, "[SPLIT]$1[SPLIT]");
输出:The construct[SPLIT]or[SPLIT] is good [SPLIT]or[SPLIT] bad? The man [SPLIT]&[SPLIT] the l[SPLIT]or[SPLIT]d are good.
第二步:在每个[SPLIT]
拆分字符串
result = splitReady.split(/'[SPLIT']/m);
这给了我们(空格可能不会正确出现在网站的标记中(:
The construct
、or
、is good
、or
、bad? The man
、&
、the l
、or
、d are good.
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- 为什么我的捕获括号之外的字符包含在我的正则表达式的匹配项中
- 将字符串值传递到包含特殊字符的 JavaScript 函数中
- 正则表达式,以字母开头,在javascript中包含x个字符
- Javascript 密码不应包含用户的帐户名或用户全名中超过两个连续字符的部分
- 包含特殊字符 (!,@,#,&) 不包括其他特殊字符
- 电子邮件验证不接受仅包含两个字符的域
- 验证字符串是否仅包含 javascript 中的某些字符
- 正则表达式:密码必须至少包含一个特殊字符
- 如何检查字符串是否包含非英语字符列表
- Javascript变量包含特殊字符
- 如果字段在几行空行之后包含前几个字符,则验证描述字段长度
- URL中包含特殊字符的HTTP状态代码
- 如何测试只包含字母字符和短划线(-)[javascript]的字符串
- 为javascript函数提供可能包含特殊字符的字符串参数
- 解析包含带$Parse的点字符的字段名称
- 如何使用regex在多行中选择包含任意字符的值
- 如何在字符之间进行匹配,但不将它们包含在结果中